CI 框架 使用phpexcel库 出现的问题 大神来帮帮忙啊
1.我使用的CI框架是最新版的,下载回来的PHPExcel解压好后 放到application/libraries/目录下,官网下载地址:http://phpexcel.codeplex.com/http://codeigniter.org.cn/forums/data/attachment/album/201703/10/090742gbonmno3otoc2fjo.png
2.在Controller控制器里面引用类库
$this->load->helper(array('form', 'url'));
$this->load->library(array('form_validation','PHPExcel','PHPExcel/IOFactory'));
http://codeigniter.org.cn/forums/data/attachment/album/201703/10/092235hwkzk4sp5k737kwq.png
3.迎合CI 需要把phpexcel/IOFactory.php 的类名改为IOFactory ,构造函数改成public
http://codeigniter.org.cn/forums/data/attachment/album/201703/10/091431p36jsjrac0xaaqb8.png
http://codeigniter.org.cn/forums/data/attachment/album/201703/10/091943pxxobpx1xxtxx5xo.png
4.写代码导入excel表格
/*
*导入excel表格
*/
public function ex_import(){
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'xls|xlsx|xl';
$config['max_size'] = 300000;
$config ['file_name'] = date ( 'Ymdhis', time () );
$this->load->library('upload', $config);
if(!$this->upload->do_upload()) {
echo $this->upload->display_errors();
}
else{
$data = array ('upload_data' => $this->upload->data () );//文件的一些信息
$file_name = $data ['upload_data'] ['file_name'];//取得文件名
}
$uploadfile='./uploads/'.$file_name;//获取上传成功的Excel
$objReader =IOFactory::createReader('Excel5');//use excel2007 for 2007 format
//$objReader =$this->iofactory->createReader('Excel5');
$objPHPExcel = $objReader->load($uploadfile);//加载目标Exce
echo '2222';exit;
$sheet = $objPHPExcel->getSheet(0);//读取第一个sheet
$highestRow = $sheet->getHighestRow(); // 取得总行数
print_r($highestRow);exit;
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
$succ_result=$error_result=0;//设置导入成功和失败的总数为0
}
http://codeigniter.org.cn/forums/data/attachment/album/201703/10/092709ja0bxa22mqheq2yn.png
这里出现了一个问题,遇到未捕获的异常?这是什么原因导致的呢?excel文件也已经上传到uploads目录下
An uncaught Exception was encounteredType: PHPExcel_Reader_Exception
Message: The filename ./uploads/20170310093254.xlsx is not recognised as an OLE file
Filename: D:\phpStudy\WWW\cixuexi\application\libraries\PHPExcel\Shared\OLERead.php
Line Number: 90
http://codeigniter.org.cn/forums/data/attachment/album/201703/10/093055z4s6zcoetf224qaf.png
http://codeigniter.org.cn/forums/data/attachment/album/201703/10/093940c2b48qufz4c1487t.png
上传的excel的表格内容是这样的:
http://codeigniter.org.cn/forums/data/attachment/album/201703/10/094356mq6yy6fztmyiwcmw.png
请问大神们怎么解决这个问题啊,我要做CI框架导入excel表格数据写入数据库
看起来你的 PHPExcel 加载是没问题的,我看错误信息是说你的 .xlsx 文件有问题,Excel 能打开不代表 PHPExcel 一定能打开,换一个文件试试? 本帖最后由 魔夜听剑 于 2017-3-10 11:24 编辑
找到了:
把:$objReader =IOFactory::createReader('Excel5');//use excel2007 for 2007 format
改为:$objReader = IOFactory::createReader('Excel2007');
页:
[1]