我正在尝试将XLSX文件作为客户报告生成,原始数据来自我们的系统。
我面临的问题是我不能简单地调用setCellValue(myText)
,因为变量myText
可能包含需要为excel进行转义的字符。例如:
=
开头的字符串被解释为公式'
的字符串被解释为验证约束(很奇怪)总之,我需要一种将myText
的内容写入单元格的方法,而不管任何特殊的Excel“魔术”如何。我始终需要将结果单元格的内容作为文本,永远不要以公式结尾(同样,我需要防止“公式注入”)。因此,我需要以某种方式转义字符串内容。重要的是:我不控制输入字符串的内容-它实际上可以是任何东西。
Excel是否有一些标准的转义方法?我正在使用Apache POI库。
事实证明,在this answer的帮助下,传统意义上的“转义”是不必要的。
使用cell.getCellStyle().setQuotePrefixed(true)
解决了问题。