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

问题描述 投票:0回答:1

我有PHP代码将数据导出到excel。使用的PHPExcel库也是如此。

PHPExcel库版本1.7.6

我们在写入以下值时遇到了问题== PD == [HW] RECEIVING CRC ERRORS

当我手动打开Excel并将单元格数据类型设置为TEXT时,它接受此值。

但是在尝试使用PHPExcel库生成excel的同时,在消息'L14 - >公式错误:意外的运算符'=''的情况下获得如下异常'Exception'的错误

我试图通过将单元格的数据类型设置为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”写入单元格?

提前致谢...

php excel types phpexcel file-writing
1个回答
0
投票

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

后继库PHPSpreadsheet的最新主分支确实包含一个修复程序,允许您将单元格的样式设置为引用文本。这将确定这不是计算引擎的公式,并且类似于MS Excel本身的建议。

$workSheet->setCellValue('A2', "==PD==[HW]RECEIVING CRC ERRORS");
$workSheet->getCell('A2')->getStyle()->setQuotePrefix(true);
© www.soinside.com 2019 - 2024. All rights reserved.