PHPExcel不支持XLSB文件。 XLSB文件格式是一个压缩档案,与XLSX相同,但大多数存储在压缩档案中的文件都是二进制文件。这些二进制文件很难解析。
一个支持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");