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 包围 {}
中的公式获得的
我在 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 包围 {}
中的公式获得的