文件扩展名xls但文件包含XML数据如何使用PHP读取这种类型的文件
我正在从事导入和导出类型项目,每天导入多种类型的数据,目前我在导入XLS文件数据时遇到一些问题。 文件扩展名XLS,但数据以XML形式包含请通知我 $path=$dir.$file\u name; $sheet\u data=simplexml\u load\u文件($path); 打印(图纸数据); 打印数据后,我可以得到如下结果文件扩展名xls但文件包含XML数据如何使用PHP读取这种类型的文件,php,Php,我正在从事导入和导出类型项目,每天导入多种类型的数据,目前我在导入XLS文件数据时遇到一些问题。 文件扩展名XLS,但数据以XML形式包含请通知我 $path=$dir.$file\u name; $sheet\u data=simplexml\u load\u文件($path); 打印(图纸数据); 打印数据后,我可以得到如下结果 SimpleXMLElement Object ( [Worksheet] => SimpleXMLElement Object
SimpleXMLElement Object
(
[Worksheet] => SimpleXMLElement Object
(
[Table] => SimpleXMLElement Object
(
[Column] => Array
(
[0] => SimpleXMLElement Object
(
)
[1] => SimpleXMLElement Object
(
)
)
[Row] => Array
(
[0] => SimpleXMLElement Object
(
)
[1] => SimpleXMLElement Object
(
[Cell] => SimpleXMLElement Object
(
[Data] => Unavailable Power Generation Capacity in PDBF (MW). Date 10-02-2016
)
)
[2] => SimpleXMLElement Object
(
)
)
)
)
)
I got file from following URL
enter code here
http://www.esios.ree.es/Solicitar/salidatotalindisppdbf_20160203.xls&en
如果显示实际的XML而不是转储SimpleXML对象,可能会更容易;但我猜是电子表格,但如果是xls文件,你会怎么读呢?也许您用来读取BIFF格式xls文件的库也有读取SpreadsheetML格式文件的选项$objReader=PHPExcel_IOFactory::createReader('Excel5')$objPHPExcel=$objReader->load($path)$工作表=$objPHPExcel->getSheet(0)$highestRow=$sheet->getHighestRow()$highestColumn=$sheet->getHighestColumn();对于($row=2;$row<12;$row++){$rowData[$row]=$sheet->RangeTarray('A'.$row'.:'.$highestColumn.$row,NULL,TRUE,FALSE);foreach($rowData[$row]as$data1);}我使用上面的代码读取XLS,但出现了类似OLE的错误。所以您使用的是PHPExcel。。。。。如果你一开始就这么说,那会有帮助的。。。。。步骤#1本应阅读PHPExcel文档,尤其是标题为步骤#2的文档,不再假设具有xls扩展名的文件是真正的BIFF格式Excel文件。。。。。。应该是这样,但很多人都很懒惰,给csv文件或html文件一个xls扩展名,然后假装它以某种方式自动转换成了真正的xls文件。。。。显式地告诉PHPExcel使用
Excel5
读取器正落入这个陷阱。。。。除非您知道该文件确实是BIFF格式,否则不要简单地假设这只是因为它有一个xls扩展名。如果您显示实际的XML而不是转储SimpleXML对象,可能会更容易;但我猜是电子表格,但如果是xls文件,你会怎么读呢?也许您用来读取BIFF格式xls文件的库也有读取SpreadsheetML格式文件的选项$objReader=PHPExcel_IOFactory::createReader('Excel5')$objPHPExcel=$objReader->load($path)$工作表=$objPHPExcel->getSheet(0)$highestRow=$sheet->getHighestRow()$highestColumn=$sheet->getHighestColumn();对于($row=2;$row<12;$row++){$rowData[$row]=$sheet->RangeTarray('A'.$row'.:'.$highestColumn.$row,NULL,TRUE,FALSE);foreach($rowData[$row]as$data1);}我使用上面的代码读取XLS,但出现了类似OLE的错误。所以您使用的是PHPExcel。。。。。如果你一开始就这么说,那会有帮助的。。。。。步骤#1本应阅读PHPExcel文档,尤其是标题为步骤#2的文档,不再假设具有xls扩展名的文件是真正的BIFF格式Excel文件。。。。。。应该是这样,但很多人都很懒惰,给csv文件或html文件一个xls扩展名,然后假装它以某种方式自动转换成了真正的xls文件。。。。显式地告诉PHPExcel使用Excel5
读取器正落入这个陷阱。。。。除非您知道该文件确实是BIFF格式,否则不要简单地假设它只是因为具有xls扩展名