尝试维护一些旧的尘土飞扬的代码,我在导入symfony命令中遇到了phpexcel的问题。
图书馆似乎无法正确计算公式,该公式链接到与活动图纸相同的文档的另一张图纸。
我得到的错误是:
[PHPExcel_Calculation_Exception]
Price Template Map!B2 -> Invalid cell coordinate A
我的代码是:
try {
$inputFileType = \PHPExcel_IOFactory::identify($filePath);
$objReader = \PHPExcel_IOFactory::createReader($inputFileType);
$objReader->setLoadSheetsOnly(array($this->getListName(), 'Template Info'));
$objReader->setIncludeCharts(true);
$objPHPExcel = $objReader->load($filePath);
} catch (\Exception $e) {
throw new \Exception("Invalid file");
}
$sheet = $objPHPExcel->getActiveSheet();
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
$fieldsNumber = array();
$filterData = array();
$templateIdList = array();
for ($i = 1; $i <= $highestRow; $i++) {
$rowData = $sheet->rangeToArray('A' . $i . ':' . $highestColumn . $i, null, true, false);
$rowData = $rowData[0];
var_dump($rowData);
}
正确读取带有标题的第一行,但其余部分未正确读取。
我的公式是:
=VLOOKUP(A18,'Template Info'!A:C,3,FALSE)"
如果您需要,请随时向我询问更多信息!
提前谢谢大家:)!
答案 0 :(得分:3)
问题是列引用:PHPExcel Calculation Engine支持范围引用(甚至是其他工作表),但不支持行或列引用
所以
;With Cte As
(
Select *,
Row_Number() Over (Partition By Animals Order By Animals) As RN
From #TempTable
)
Update Cte
Set Animals = Animals + Case When RN % 2 = 0
Then '_A'
Else '_B'
End
会有效,但
=VLOOKUP(A18,'Template Info'!A1:C100,3,FALSE)
无法计算
答案 1 :(得分:0)
使用getCalculatedValue()
功能。