PHP7中文手册2018 带注释 最新chm版
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);
这样就不会报错了