php导入表格 出错,phpexcel导入excel文件报 an OLE file错误。

phpexcel导入excel文件报the filename xxx is not recognised as an OLE file错误。

工作中频繁会用phpexcel类导入excel文件的数据到数据库,目前常用的excel文件格式有:xls、csv、xlsx。

刚开始,针对xls文件,使用如下程序,能正常运行:

$objReader = \PHPExcel_IOFactory::createReader("Excel5"); //创建读入器

$objExcel = $objReader ->load($file); //加载文件

$sheet = $objExcel ->getSheet(0); //读取文件

当文件后缀是xlsx 或者 csv 就会报:the filename xxx is not recognised as an OLE file错误。

原因是不同的后缀文件需要不同的加载方式,完整方案如下:

if (!file_exists($fileName)) {

die('no file!');

}

$extension = strtolower( pathinfo($fileName, PATHINFO_EXTENSION) );

if ($extension =='xlsx') {

$objReader = new \PHPExcel_Reader_Excel2007();

$objExcel = $objReader ->load($file);

} else if ($extension =='xls') {

$objReader = new \PHPExcel_Reader_Excel5();

$objExcel = $objReader ->load($file);

} else if ($extension=='csv') {

$PHPReader = new \PHPExcel_Reader_CSV();

//默认输入字符集

$PHPReader->setInputEncoding('GBK');

//默认的分隔符

$PHPReader->setDelimiter(',');

//载入文件

$objExcel = $PHPReader->load($file);

}

$sheet = $objExcel ->getSheet(0);

这样就不会报错了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值