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

来源:赵克立博客 分类: PHP 标签:--发布时间:2017-05-02 10:30:11最后更新:2017-05-02 10:32:10浏览:3180
版权声明:
本文为博主学习过程中整理发布,如有侵权请告知
更新时间:
2017-05-02 10:32:10
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

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);


这样就能正常运行了



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python