我制作了以下函数,用于从工作表中获取矩阵。
private function getMatrixFromSheet($worksheet){
foreach ($worksheet->getRowIterator() as $row) {
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
if (!is_null($cell)) {
$matrix[$cell->getRow()][$cell->getColumn()] = $cell->getCalculatedValue();
}
}
}
return $matrix;
}
这样,如果我想访问第二行,第二列col,我可以$matrix[2]['B']
。
我需要能够以数字形式访问矩阵索引,才能以$matrix[2][2]
的形式访问上一个单元格。
有没有办法做到这一点?
我尝试将$cell->getColumn()
结果转换为整数,但不幸的是(int) "a" == 0
答案 0 :(得分:1)
如果你只想要列的数值,那么PHPExcel提供了一个静态的帮助方法来做到这一点
$columnIndex = PHPExcel_Cell::columnIndexFromString($cell->getColumn());
列A
为1,列B
为2,列AA
为27,列AB
为28,等等
但是,您可能会发现可以完全简化您的功能,因为PHPExcel还提供toArray()
方法来完成您为此方法编写的内容:
private function getMatrixFromSheet($worksheet){
return $worksheet->toArray();
}
请注意toArray()
返回的矩阵的行/列偏移量是从0开始的