PHPSpreadsheet:getHighestDataRow/getHighestDataColumn 在 fromArray 之后

PHPSpreadsheet: getHighestDataRow/getHighestDataColumn after fromArray

我正在使用 fromArray 将一组数据加载到工作表中。这工作正常。这样做之后,getHighestDataColumn 和getHighestDataRow 似乎没有更新。有没有办法强制 PHPSpreadsheet 在调用 fromArray 后重新计算这些值?

[edit] 更新似乎解决了这个问题。

请注意,如果您仍在使用 github#PHPExcel 库,请不要使用它们。
他们说要更新到它的直接后继者,这是在 github#PhpSpreadsheet

维护和最近更新的

最近 Microsoft 发布了一个更新,它破坏了我们使用旧库时的一些功能。

从他们的文档中获取此示例,您可以尝试使用 fromArray():

从数组设置数据:

$arrayData = [
  [NULL, 2010, 2011, 2012],
  ['Q1',   12,   15,   21],
  ['Q2',   56,   73,   86],
  ['Q3',   52,   61,   69],
  ['Q4',   30,   32,    0],
];
$sheet->getActiveSheet()
  ->fromArray(
    $arrayData,  // The data to set
    NULL,        // Array values with this value will not be set
    'C3'         // Top left coordinate of the worksheet range where
                //    we want to set these values (default is A1)
  );

然后您按照以下步骤从电子表格中提取数据:

$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();

//  Loop for each row
for ($row = 0; $row <= $highestRow; $row++) {
  // here you extract the columns for that row
  $columns = array_shift(array_values($sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE)));
}