PHPExcel(和其他人)在读取xlsx时缺少单元格值

时间:2016-01-18 22:25:03

标签: excel phpexcel openxml xlsx

我正在使用不同的php库来从各种文件类型中读取客户端订单。 现在我卡住了一点。

我收到的xlsx文件(附件)可能是由某些未知软件生成的。 当我使用PHPExcel(1.8.0)读取它时,我只得到包含数字的单元格的值 - 初看起来。

正如我们所知,xlsx是某些xml文件的存档容器。 当我稍微挖掘那些xmls时 - 我已经知道我只获得了表单文件中描述的单元格的值(xl / worksheets / sheet1.xml在此xlsx中)工作表 - > sheetData-> row-> c将attr“t”设置为“n”。通常这意味着值在此文件中。标记为“c”的attr“t”设置为“s” - 值在SharedStrings.xml中描述。并且PHPExcel没有得到它们。

或者我做错了什么?

这是一个简单的代码:

$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$excel = $objReader->load($file);
$excel->setActiveSheetIndex(0);
$data = $excel->getActiveSheet()->toArray(null, true, true, true);

print_r($data);

Link to file

1 个答案:

答案 0 :(得分:0)

首先尝试通过getHighestRow()获得最高排名,然后像这样使用rangeToArray('A1:'.$highestRow): -

$workingSheet = $objPHPExcel->getActiveSheet();
$highestRow = $objPHPExcel->getActiveSheet()->getHighestRow();
$data = $workingSheet->rangeToArray('A1:Y'.$highestRow);

它将从Excel读取所有数据并存储到$data