PHPExcel:编写单元格数据类型问题时出现问题

时间:2019-02-22 07:31:55

标签: php excel types phpexcel file-writing

我有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”写入单元格时,有人可以帮我解决问题吗?

预先感谢...

1 个答案:

答案 0 :(得分:0)

如果PHPExcel遇到内容的第一个字符为=的单元格,则它将认为该单元格包含Excel公式,并将尝试对其进行求值。如果它实际上不是公式,那么它将抛出这样的异常。 除了建议您在=之前添加前导空格(或其他字符),PHPExcel中没有简单的解决方案。 PHPExcel不再是受支持的库,并且此错误将不会得到修复(尤其是在您运行的旧版本中)。

后继库PHPSpreadsheet的最新master分支确实包含对此的修复程序,使您可以将单元格的样式设置为带引号的文本。这将确定这不是计算引擎的公式,并且与建议在MS Excel本身中执行的操作类似。

$workSheet->setCellValue('A2', "==PD==[HW]RECEIVING CRC ERRORS");
$workSheet->getCell('A2')->getStyle()->setQuotePrefix(true);