Apache POI setCellFormula中的双引号

时间:2014-10-20 12:29:54

标签: java apache-poi

使用Apache POI 3.10.1(Java)我有一个POI替换字符串中的双引号的问题“.Excel无法读取它,因为它期望真正的双引号。

此:

cell.setCellFormula("IF(A2=\"TEST\";1;2)");

在sheet1.xml中打开它(打开text.xlsx(作为zip)并查看sheet1.xml):

<f>IF(A2=&quot;TEST&quot;;1;2)</f>

Excel会在工作表中引发错误。在Excel中编写公式,我可以从XML中看到它期望这样:

<f>IF(A2="TEST";1;2)</f>

我似乎找不到任何有类似问题的人。有人知道这是一个错误还是我做错了什么?

2 个答案:

答案 0 :(得分:2)

可能这是由分号引起的

cell.setCellFormula("IF(A2=\"TEST\",1,2)");

这对我有用。

有关if-function以及如何提供参数的详细信息,请参阅online help

答案 1 :(得分:0)

我不久前在我的项目中发现了simillar问题。

在我的情况下,我无法预测raport中将添加到XML然后再添加到PDF / MSExcel的字符。

我使用CDATA(import org.jdom.CDATA)功能:

final Element xmlIssueTitle = new Element(xmlMessageIssueTitle);
final CDATA xmlIssueTitleCDATA = new CDATA(issueObj.getTitle());
xmlIssueTitle.addContent(xmlIssueTitleCDATA);