您的位置:首页 > 编程语言 > PHP开发

phpexcle在thinkphp3.2.3下的导入导出数据

2016-04-26 16:53 483 查看
首先下载一个phpexcle,将其解压讲文件夹放在THinkPHP/Library/Vendor/Phpexcle 下,因为有命名空间的存在,在引用扩展类的时候一定要记得加  \

import("Org.Util.PHPExcel");

  //要导入的xls文件,位于根目录下的Public文件夹

  $filename="./Public/1.xlsx";

  //创建PHPExcel对象,注意,不能少了\

  $PHPExcel=new \PHPExcel();

  //如果excel文件后缀名为.xls,导入这个类

  // import("Org.Util.PHPExcel.Reader.Excel5");

  //如果excel文件后缀名为.xlsx,导入这下类

  import("Org.Util.PHPExcel.Reader.Excel2007");

  $PHPReader=new \PHPExcel_Reader_Excel2007();

// $PHPReader=new \PHPExcel_Reader_Excel5();

  //载入文件

  $PHPExcel=$PHPReader->load($filename);

  //获取表中的第一个工作表,如果要获取第二个,把0改为1,依次类推

  $currentSheet=$PHPExcel->getSheet(0);

  //获取总列数

  $allColumn=$currentSheet->getHighestColumn();

  //获取总行数

  $allRow=$currentSheet->getHighestRow();

  //循环获取表中的数据,$currentRow表示当前行,从哪行开始读取数据,索引值从0开始

  for($currentRow=1;$currentRow<=$allRow;$currentRow++){

  //从哪列开始,A表示第一列

  for($currentColumn='A';$currentColumn<=$allColumn;$currentColumn++){

  //数据坐标

  $address=$currentColumn.$currentRow;

  //读取到的数据,保存到数组$arr中

  $arr[$currentRow][$currentColumn]=$currentSheet->getCell($address)->getValue();

  }

  }

  dump($arr);
这段代码为讲在public下的1.xlsx excle表中的数据读取出来,并且存入到数组$arr中,有了数组我们就可以进行一些详细的操作。

数据导入excle表,一般会出现的问题为打印乱码,首先要保证的是在excle输出前,没有其他打印信息。检查头部header("Content-Typ:text/html;charset=utf-8");是否有写,如果还未生效,则在
header('Content-Type:application/vnd.ms-excel');

 header('Content-Disposition:attachment;filename="Stock.xls"');

 header('Cache-Control: max-age=0');
输出前添加 ob_end_clean();//清除缓冲区,避免乱码,具体的phpexcle格式文档可详细参考http://www.cnblogs.com/freespider/p/3284828.html。记得加 \ ,路径配置对,问题不大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: