PHPSpreadsheet 和隐式交集运算符:@

PHPSpreadsheet and Implicit intersection operator: @

我在 Excel 模板中命名了范围,并且在生成文件时使用公式 =MIN(IF(UnitTypes=T43,Rents)) 被转换为 =MIN(IF(@UnitTypes=T43,Rents))。由于隐式交集运算符:@,公式不起作用,除非我手动进入每个单元格并删除 @.

我试过使用:=MIN(IF(C:C=T43,L:L)) 只是为了将其转换为 =MIN(IF(@C:C=T43,L:L))

我还尝试在 PHPSpreadsheet 中设置命名范围:

$spreadsheet->addNamedRange( new \PhpOffice\PhpSpreadsheet\NamedRange('UnitTypes', $spreadsheet->getSheet(1), 'C15:C38') );
$spreadsheet->addNamedRange( new \PhpOffice\PhpSpreadsheet\NamedRange('Rents', $spreadsheet->getSheet(1), 'L15:L38') );

$spreadsheet->getSheet(1)->setCellValue('T45','=MIN(IF(UnitTypes=T43,Rents))');

但是,这会产生 #VALUE 错误,(而再次删除 @ 将起作用。)

PHPSpreadsheet 中是否有防止 Excel 插入隐式交集运算符的设置?

这是通过进入 Excel 中的公式并按住 CTRL=SHIFT=ENTER 包围 {}

中的公式获得的