java - 货币格式 Apache POI
问题描述
我需要将 BRL 硬币的格式设置到我的工作表中。我正在使用 Apache POI 设置货币样式,代码如下:
XSSFCellStyle style = xssfWorkbook.createCellStyle();
style.setDataFormat(cf.getFormat("R$#,##0.00;\\R$-#,##0.00"));
但是当我将 xlsx 文件打开到 LibreOffice(我是 linux 用户)中时,我的单元格没有被格式化。检查单元格在单元格值的开头包含引号',并且在停用此引号时,我的单元格值的格式正确。之后和之前的我的工作表的打印。请问有什么建议吗?
编辑:我在单元格中创建和设置值的方法(将上述样式作为参数传递):
public XSSFCell criarCelula(int indice, String conteudo, XSSFRow linha, XSSFCellStyle estilo) {
XSSFCell celula = linha.createCell(indice);
celula.setCellValue(conteudo);
celula.setCellStyle(estilo);
return celula;
}
解决方案
我得到了 Axel Ritcher 的建议。使用我的内容变成双精度类型而不是字符串。
Double conteudo;
celula.setCellValue(conteudo);
推荐阅读
- javascript - ubuntu 18 上 webkit 的 Playwright TLS 握手问题
- r - 如何以 tibble 作为返回值对嵌套数据运行/编写映射函数?
- java - 更新 JTable 中单元格的值
- c++ - 当 operator* 返回 std::make_pair 时,如何为迭代器重载 operator->
- javascript - 如何根据状态勾选 React 复选框
- javascript - 在使用模板文字时循环数组
- java - 当我使用 dockerfile-maven-plugin 时,我无法从 pom.xml 中获取参数
- pandas - sql 执行失败 - 错误 - Pandas.to.sql()
- c# - CsvHelper - 当前版本的 CsvHelper 中的 .CurrentRecord / .Context.Record 替换
- java - 如何禁用运行检查样式并仅按需执行