我正在使用nuovo/spreadsheet-reader来阅读excel文件。读取XLSX文件时,将跳过第一行以及不包含任何数据的所有行。然后将以下行放在跳过的行的索引中。例如,如果电子表格有10行,其中2行没有数据,则按如下方式解析所有单元格:
$excel_obj = new SpreadsheetReader($file);
// Sheet is changed to the correct one, not shown here
foreach ($excel_obj as $key => $row)
{
error_log("key:".$key); // This only prints for each non empty row
if ($row)
{
$form_data[] = $row;
}
else
{
error_log("example allowed for this case, not sure why - never happens though");
}
}
导致$ form_data有7行,索引为0到6(而不是10行,索引为0到9)。如果行索引没有泄露($ form_data仍然有10个行索引,但3个不包含任何行数据),这不会是一个大问题。不幸的是,不可能重建原始数据矩阵。是否有另一种方法来读取我遗漏的数据,或者可能是一个建议的修复方法?
答案 0 :(得分:0)
我发现缺少的行是由于XML解析器的简单实现。行的XML标记具有行号作为属性。电子表格阅读器不会检查缺失的行,而只是在找到它们时按下新标记。
最后,我不得不调整库以填补缺失的行。