以下为本篇文章全部内容:
前几天给大家介绍了,怎么把通过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进行解答,或者拿起您的手机,打开扫一扫
总赞数量:18274
总踩数量:128088
文章数量:29