从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的