使用phpexcel

时间:2016-09-27 14:01:07

标签: php excel phpexcel

尝试维护一些旧的尘土飞扬的代码,我在导入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)"

如果您需要,请随时向我询问更多信息!

提前谢谢大家:)!

2 个答案:

答案 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()功能。