【问题标题】:JExcelApi currency format on formula cell - file error公式单元格上的 JExcelApi 货币格式 - 文件错误
【发布时间】:2012-12-12 00:48:43
【问题描述】:

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

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

【问题讨论】:

    标签: java excel formatting spreadsheet jexcelapi


    【解决方案1】:

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

    WritableCellFormat cfi3 = new WritableCellFormat
                    (NumberFormats.ACCOUNTING_FLOAT);
    

    【讨论】:

      【解决方案2】:
      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);
      

      这肯定会解决你的目的!

      【讨论】:

        【解决方案3】:

        您的货币格式似乎没有写出来。 您可以尝试先创建公式单元格,然后将其格式化为货币格式。 希望对您有所帮助。

        【讨论】:

        • 不走运 - “文件错误。某些数字格式可能已丢失。”当我打开电子表格时。格式正在写出,但 Excel 无法正确读取。无论如何谢谢:)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多