从Excel工作表生成matrix
我做了以下function从工作表中获取matrix。
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']
。
我需要能够以数字的forms访问matrix索引,以便像$matrix[2][2]
那样访问前一个单元格。
有没有办法做到这一点?
我尝试将$cell->getColumn()
结果转换$cell->getColumn()
整数,但不幸的是(int) "a" == 0
如果您只想为该列指定一个数值,那么PHPExcel提供了一个静态辅助方法来完成这个工作
$columnIndex = PHPExcel_Cell::columnIndexFromString($cell->getColumn());
其中A
列返回1, B
列返回2, AA
列返回27, AB
列返回28
但是,您可能会发现可以完全简化您的function,因为PHPExcel还提供了toArray()
方法来完成您为此编写的方法:
private function getMatrixFromSheet($worksheet){ return $worksheet->toArray(); }
请注意,由toArray()
返回的matrix的行/列偏移量是基于0的