我正在编写一份包含JExcelApi的电子表格。
我想要将货币格式应用于两个单元格。从阅读API我发现了jxl.write.NumberFormat,这似乎做我想要的。在我的申请中,我写道:
NumberFormat currency = new NumberFormat(NumberFormat.CURRENCY_DOLLAR);
WritableCellFormat currencyFormat = new WritableCellFormat(currency);
cells.add(new Formula(col, row, myFormula, currencyFormat));
col和row是要写入的列和行。 myFormula是要写的公式。有一个AVERAGE()和一个SUM(),每个都写入不同的单元格。 cells是一个ArrayList,它被写入电子表格,如下所示:
for (WritableCell cell : cells) {
ws.addCell(cell);
}
(周围有一个try / catch块,但目前它是无关紧要的。)
编辑:ws是使用WritableWorkbook.getSheet(String name)获得的WritableSheet。写入ws的所有内容都没有问题:)
文件写入成功,但是当我打开它时,我收到消息“文件错误。某些数字格式可能已丢失。”我上面格式化的单元格尚未在Excel文件中格式化。
我正在使用Microsoft Excel 2003 SP3和JExcelApi 2.6.10。
有人可以帮帮我吗? 在此先感谢:)
答案 0 :(得分:3)
你可以在这里找到帮助: http://www.docjar.com/html/api/jxl/demo/Write.java.html - 使用
WritableCellFormat cfi3 = new WritableCellFormat
(NumberFormats.ACCOUNTING_FLOAT);
答案 1 :(得分:1)
NumberFormat currencyFormat = new NumberFormat(NumberFormat.CURRENCY_DOLLAR + " ###,###.00", NumberFormat.COMPLEX_FORMAT);
WritableCellFormat lCurrencyFormat = new WritableCellFormat(currencyFormat);
Number currency = new Number(j, cnt, Double.parseDouble(lStr), lCurrencyFormat);
lSheet.addCell(currency);
这肯定会解决你的目的!
答案 2 :(得分:0)
看来你的货币格式没有写出来。 您可以先尝试创建公式单元格,然后将其格式化为货币格式。 希望这可以帮到你。