公式单元格上的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名称)获得的WritableSheet。 其他所有添加到ws写入没有问题:)

该文件写入成功,但是当我打开它时,我得到消息“文件错误。有些数字格式可能已经丢失。 上面格式化的单元格没有在Excel文件中格式化。

我正在使用Microsoft Excel 2003 SP3和JExcelApi 2.6.10。

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

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

 WritableCellFormat cfi3 = new WritableCellFormat (NumberFormats.ACCOUNTING_FLOAT); 
 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); 

这一定会解决你的目的!

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