如何使用PHP将* .xlsb转换为数组或* .csv

我试图将*.xlsb文件转换为php array*.csv文件(或至less*.xls )。 我试图使用PHPExcel ,但看起来不能识别这个文件里面的东西。

我注意到,您可以将*.xlsb文件重命名为*.zip文件,然后使用命令行unzip *.zipunzip *.zip 。 在此之后,您将获得与sheet1.bin文件的下一个文件夹:

在这里输入图像说明

看起来像这个文件应该包含Excel单元格值,但我仍然无法使用PHPExcelparsing它。 有人可以帮我parsing*.xlsb文件甚至可以*.xlsb获取信息吗? 或者也许有可能parsing这个sheet1.bin文件?

PHPExcel不支持XLSB文件 。 XLSB文件格式是一个zip存档,与XLSX相同,但存档内的大部分文件都是二进制文件。 二进制文件不容易parsing。

用于支持XLSB文件的PHP的Excel库是EasyXLS 。 你可以从这里下载图书馆。

将XLSB转换为PHP数组

 //Code for reading xlsb file $workbook = new COM("EasyXLS.ExcelDocument"); $workbook->easy_LoadXLSBFile("file.xlsb"); //Code for building the php array $xlsTable = $workbook->easy_getSheetAt(0)->easy_getExcelTable(); for ($row=0; $row<$xlsTable->RowCount(); $row++) { for ($column=0; $column<$xlsTable->ColumnCount(); $column++) { $value = $xlsTable->easy_getCell($row, $column)->getValue(); //transfer $value into your array } } 

要么

 //Code for reading xlsb file $workbook = new COM("EasyXLS.ExcelDocument"); $rows = $workbook->easy_ReadXLSBActiveSheet_AsList("file.xlsb"); //Code for building the php array for ($rowIndex=0; $rowIndex<$rows->size(); $rowIndex++) { $row = $rows->elementAt($rowIndex); for ($cellIndex=0; $cellIndex<$row->size(); $cellIndex++) { $value = $row->elementAt($cellIndex); //transfer $value into your array } } 

将XLSB转换为CSV

 //Code for reading xlsb file $workbook = new COM("EasyXLS.ExcelDocument"); $workbook->easy_LoadXLSBFile("file.xlsb"); //Code for converting to CSV $workbook->easy_WriteCSVFile("file.csv", $workbook->easy_getSheetAt(0)->getSheetName()); 

将XLSB转换为XLS

 //Code for reading xlsb file $workbook = new COM("EasyXLS.ExcelDocument"); $workbook->easy_LoadXLSBFile("file.xlsb"); //Code for converting to XLS $workbook->easy_WriteXLSFile("file.xls");