2

我正在用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。

任何人都可以帮助我吗?提前致谢 :)

4

3 回答 3

3

你可以在这里找到帮助:http: //www.docjar.com/html/api/jxl/demo/Write.java.html - 使用

WritableCellFormat cfi3 = new WritableCellFormat
                (NumberFormats.ACCOUNTING_FLOAT);
于 2009-12-28T10:08:38.990 回答
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);

这肯定会解决你的目的!

于 2010-09-23T14:58:47.640 回答
0

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

于 2009-09-25T03:12:51.913 回答