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)));
}
我正在使用 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)));
}