公式单元格上的JExcelApi货币格式 - 文件错误

时间:2009-09-24 11:31:55

标签: java excel formatting spreadsheet jexcelapi

我正在编写一份包含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。

有人可以帮帮我吗? 在此先感谢:)

3 个答案:

答案 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)

看来你的货币格式没有写出来。 您可以先尝试创建公式单元格,然后将其格式化为货币格式。 希望这可以帮到你。