前几天给大家介绍了,怎么把通过php把数据库的内容导出到Excel生成表格,但是这远远不够符合大家开发当中遇到的问题,既然有导出那么就会有导入,我们这次导入跟上次导出用到的是同一个类。也是PHPExcel,当然这个类还有很多其他强大的功能,我介绍的只是一个小部分而已。更加强大的功能大家就得自己发掘。
工具类的下载地址:http://phpexcel.codeplex.com/
下面上实例代码:
<?php $PHPExcel = new PHPExcel();// 实例化PHPExcel工具类 //分析文件获取后缀判断是2007版本还是2003 $extend = pathinfo("./" . $_POST['files']); $extend = strtolower($extend["extension"]); // 判断xlsx版本,如果是xlsx的就是2007版本的,否则就是2003 if ($extend=="xlsx") { $PHPReader = new PHPExcel_Reader_Excel2007(); $PHPExcel = $PHPReader->load("./" . $_POST['files']); }else{ $PHPReader = new PHPExcel_Reader_Excel5(); $PHPExcel = $PHPReader->load("./" . $_POST['files']); } // 获取哪一页的数据,0就是第一页 $currentSheet = $PHPExcel->getSheet(0); // 获取行数 $allColumn = $currentSheet->getHighestColumn(); // 获取列数 $allRow = $currentSheet->getHighestRow(); $arr = array(); //遍历获取数据装到$arr数组中 for ($currentRow = 2; $currentRow <= $allRow; $currentRow++) { $arrs = (str_split($allColumn)); if (strlen($allColumn) >= 2) { foreach (range('A', 'Z') as $letter) { $address = $letter . $currentRow; $arr[$currentRow][] = $currentSheet->getCell($address)->getFormattedValue(); } for ($s1 = $arrs[0]; $s1 <= $arrs[1]; $s1++) { $address = $arrs[0] . $s1 . $currentRow; $arr[$currentRow][] = $currentSheet->getCell($address)->getFormattedValue(); } } else { //遍历获取数据存到数组,从A列开始获取到AB列 for ($currentColumn = 'A'; $currentColumn <= "AB"; $currentColumn++) { $address = $currentColumn . $currentRow; $arr[$currentRow][] = $currentSheet->getCell($address)->getFormattedValue(); } } }
上面已经可以把表格的数据存到数组里面了,然后数组各位只需要遍历就可以处理了,使用框架的可以循环单独写入也行,要求效率的可以循环拼接成一条sql语句直接执行,如何写入数据库就不用我说了吧,各位都懂的。
如果大家有什么疑问可以加我QQ327388905进行解答,或者拿起您的手机,打开扫一扫
总赞数量:18241
总踩数量:128083
文章数量:28