gpt4 book ai didi

java - 将 apache poi 中的单元格值格式化为会计或数字货币

转载 作者:行者123 更新时间:2023-11-30 03:48:56 25 4
gpt4 key购买 nike

下面的代码是 apache poi 代码,用于创建具有文本值的 Excel 单元格,希望文本值作为货币。

代码:

    row1=   sheetNormal.createRow((short)2);
row1.setHeight((short)(256 *1.5));
header = row1.createCell((short)1);
header.setCellValue(Integer.parseInt(500000));

Excel 中所需的输出:-5,00,000

输出以文本形式显示。

最佳答案

要获得货币输出,您可以执行以下操作。请注意,setStringValue(value) 方法接受的值为 double,但不是 Integer。您可以将其从 String 解析为 Double,然后根据用于输入值的精度来操作该值。这个精度可以是:

  • 全部美元;
  • 美分;
  • 1/1000 美分。

在下面的代码中,您可以找到所有三个示例(header 已被 cell1 更改):

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("test sheet");

HSSFCellStyle currencyStyle = wb.createCellStyle();
HSSFDataFormat dataFormat = wb.createDataFormat();
currencyStyle.setDataFormat(dataFormat.getFormat("$#,##0.00.000"));

HSSFRow row1 = sheet.createRow(2);
row1.setHeight((short) (256*1.5));

// Input in DOLLARS
HSSFCell cell1 = row1.createCell(1);
cell1.setCellStyle(currencyStyle);
cell1.setCellValue(Double.parseDouble("5")); // output $5,00,000

// Input in CENTS
HSSFCell cell2 = row1.createCell(2);
cell2.setCellStyle(currencyStyle);
cell2.setCellValue(Double.parseDouble("499") / 100); // output $4,99,000

// Input in 1/1000 OF A CENT
HSSFCell cell3 = row1.createCell(3);
cell3.setCellStyle(currencyStyle);
cell3.setCellValue(Double.parseDouble("123456789") / 100000); // output $1 234,56,789

try {
FileOutputStream out = new FileOutputStream("currency_data_format.xls");
wb.write(out);
out.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}

如果您在单元格中看到 ########,那是因为您的值包含太多字符。 增加单元格宽度

如果您对输入数据的方式给出一些精确的说明,我可以修改上面的代码。祝你好运!

关于java - 将 apache poi 中的单元格值格式化为会计或数字货币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24903986/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com