我有PHP代码可将数据导出到excel。同样使用了PHPExcel库。
PHPExcel库版本1.7.6
我们在写入以下值时遇到问题 == PD == [HW] RECEIVING CRC ERRORS
当我手动打开Excel并将单元格数据类型设置为TEXT时,它正在接受该值。
但是在尝试使用PHPExcel库生成excel时,出现如下错误异常'Exception'并显示消息'L14-> Formula Error:Unexpected operator'=''
我试图通过将单元格的数据类型设置为STRING来解决此问题,但是没有运气...尝试了以下设置单元格数据类型的方法...
#first try
$activeSheet->setCellValueExplicit($symptomColumn.$rowCount, $val, PHPExcel_Cell_DataType::TYPE_STRING);
#second try
$activeSheet->getCell($symptomColumn.$rowCount)->setValueExplicit($val, PHPExcel_Cell_DataType::TYPE_STRING);
#third try
$activeSheet->getCell($symptomColumn.$rowCount)->setDataType(PHPExcel_Cell_DataType::TYPE_STRING);
#fourth try
$activeSheet->getStyle($symptomColumn.$rowCount)
->getNumberFormat()
->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_GENERAL
);
#fifth try
$activeSheet->getStyle($symptomColumn.$rowCount)
->getNumberFormat()
->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_TEXT
);
在使用PHPExcel库创建excel时,有人将“ == PD == [HW] RECEIVING CRC ERRORS”写入单元格时,有人可以帮我解决问题吗?
预先感谢...
答案 0 :(得分:0)
如果PHPExcel遇到内容的第一个字符为=
的单元格,则它将认为该单元格包含Excel公式,并将尝试对其进行求值。如果它实际上不是公式,那么它将抛出这样的异常。
除了建议您在=
之前添加前导空格(或其他字符),PHPExcel中没有简单的解决方案。 PHPExcel不再是受支持的库,并且此错误将不会得到修复(尤其是在您运行的旧版本中)。
后继库PHPSpreadsheet的最新master分支确实包含对此的修复程序,使您可以将单元格的样式设置为带引号的文本。这将确定这不是计算引擎的公式,并且与建议在MS Excel本身中执行的操作类似。
$workSheet->setCellValue('A2', "==PD==[HW]RECEIVING CRC ERRORS");
$workSheet->getCell('A2')->getStyle()->setQuotePrefix(true);