Я разрабатываю импортер на основе библиотеки PHPExcel.Неправильная ссылка на ячейку в PHPExcel
Этот кусок кода сохраняет ячейки для последующего использования.
foreach ($this->importModel->currentAttributeNames as $columnLabel => $attribute) {
$cell = $this->_sheet->getCell($columnLabel . $row->getRowIndex());
$this->importModel->importModelAttributes[$attribute]->setDefaultValueCell($cell);
}
$this->_sheet
содержит текущий лист, который является действительным PHPExcel_Worksheet
объектом.
Сохраненные ячейки содержат действительный PHPExcel_Cell
объект.
Позже я попытаться использовать его также в foreach
цикле:
foreach ($this->importModel->importModelAttributes as $importModelAttribute) {
var_dump($importModelAttribute->_defaultValueCell);
...
}
$importModelAttribute->_defaultValueCell->getValue()
возвращает правильное значение, но getCoordinate()
возвращает координаты первой ячейки последней строки с данными в этом листе (A11
), тогда как оно должно be B7
.
Выполнены некоторые другие расчеты, и они зависят от стиля ячеек (цвет в этом случае), а также возвращает стиль от ячейки A11
.
Для тестирования и отладки я также пытался клонировать объекты ячеек, но безуспешно.
Спасибо за объяснение. Я на самом деле думал о сохранении числа координат и листов в качестве альтернативы. Если я снова вызову 'getCell ($ координат)', где он будет загружен? Из кеша или будет обработан снова? Другими словами, как это повлияет на производительность? – arogachev
Еще один вызов getCell() перезагрузит эту ячейку из кеша (если она кэширована) и сбросит ее как активную ячейку ... сколько из служебных данных производительности будет зависеть от используемого вами кеширования –