我正在使用apache poi api
在我的java应用程序中生成Excel工作表。在 excel 中设置的数据以字符串类型动态提供。对于列 1,值为字母数字。当我生成Excel时,它会在单元格上给我绿色指示,并警告“数字存储为文本”或“带有2位数年份的文本日期”。
我想去掉那个警告。我发现在excel中,我们可以将单元格标记为“忽略错误”,以忽略警告。
如何以编程方式实现它,或者是否有任何其他替代方法来实现此任务?
我还附上了显示带有绿色标记的警告的屏幕截图。
代码:
if (cellValue != null && (shouldBeRightAlign))
{
cellType = Cell.CELL_TYPE_NUMERIC;
}
else if (cellValue != null)
{
cellType = Cell.CELL_TYPE_STRING;
}
cell.setCellValue(cellValue);
对我来说,上面的解决方案都不起作用,但最后用一个有点复杂的变通方法摆脱了警告:像这样将值写成公式。
String asFormula = "\"" + value + "\"";
cell.setCellType(SXSSFCell.CELL_TYPE_FORMULA);
cell.setCellFormula(asFormula);
不要认为这总是一个好的解决方案,但在我的情况下,输出文件的值永远不会被修改。但它可能会帮助某人。
我使用的是apache POI的3.14版本,以防它会有所不同(在变通方法之前,我已经尝试了几个不同的版本,没有效果)。
显然,这在Apache POI中目前是不可能的。关于该主题,有许多错误报告/RFE:
https://issues.apache.org/bugzilla/show_bug.cgi?id=58641
https://issues.apache.org/bugzilla/show_bug.cgi?id=54868
https://issues.apache.org/bugzilla/show_bug.cgi?id=46136
实际属性(表示忽略此类警告的属性)以Excel持久格式存在,并按单元格记录。据我从错误报告中所知,Apache POI并没有公开它。
为了让您了解这在Excel的xlsx格式中是什么样子:
</worksheet>
...
<ignoredErrors>
<ignoredError sqref="K192 E181 E186" numberStoredAsText="1"/>
</ignoredErrors>
</worksheet>
我在某处读到,这只在 xlsx
(即 OOXML)中持久化,而不是以 xls
格式存在,这意味着如果 Apache POI 团队实现这一点,它将在 XSSF 包中。
API现在提供了相应的方法
public void addIgnoredErrors(CellRangeAddress region,
IgnoredErrorType... ignoredErrorTypes)
我正在尝试用android显示PPT文件。我从ApachePOI开始,bcoz我还没有找到任何免费的开源jar。我从将ppt幻灯片转换为图像开始,参考此链接将PowerPoint幻灯片导出为java。awt。图表2D 这是Java语言。我找不到Dimension、BuffereImage和Graphics2D类。我已经导入了poi-scratchpad-3.8-20120326。jar在我的构建路
用户可以将Excel文档保存为. xls或xml-table。结果是一个具有固定结构的xml-file,Excel可以用它纠正工作。 可以用java中的ApachePOI打开这种类型的excel文件吗? 事先谢谢你,安德烈。
我有一个要求,需要将数据验证添加到整个列中,而不是特定的单元格中。我查阅了ApachePOI的文档,发现了下面的示例 但是上面的例子为特定的单元格创建了一个下拉数据验证。在这种情况下,行0,列0。列中的其余单元格没有验证。但是在实际的excel文件中,我们可以这样做,所以这应该是可能的。我尝试并搜索了很多,但无法找到解决方案。请帮助...
我正在写一个程序,它需要从excel文件中读取和写入数据,而不考虑格式(xls或xlsx)。 我知道ApachePOI,但它似乎有不同的类来处理xls文件(HSSF)和xlsx(XSSF)文件。 任何人都知道我将如何实现我在这里的目标。(也欢迎使用POI以外的API的想法)。
嗨,我想在第一行搜索一个字符串,如果找到了,我想移动那一列。
我有个疑问 当我使用猫鼬时,我得到了上述警告。如何清除它们?