使用Apache POI在Excel单元格中写入数字

23

如何使用POI将完整的值写入单元格?

例如,如果值为1000.000,则如何在不截断小数点后面的000的情况下写入完整值? 我想要完整的值。

在我的情况下,它只能够接受1000,但这对我来说不是正确的格式。

1个回答

36

您需要设置存储该数字的单元格的“格式”。 示例代码:

Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("format sheet");
CellStyle style;
DataFormat format = wb.createDataFormat();
Row row;
Cell cell;
short rowNum = 0;
short colNum = 0;

row = sheet.createRow(rowNum++);
cell = row.createCell(colNum);
cell.setCellValue(11111.25);
style = wb.createCellStyle();
style.setDataFormat(format.getFormat("0.0"));
cell.setCellStyle(style);

row = sheet.createRow(rowNum++);
cell = row.createCell(colNum);
cell.setCellValue(11111.25);
style = wb.createCellStyle();
style.setDataFormat(format.getFormat("#,##0.0000"));
cell.setCellStyle(style);

FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();

来源: http://poi.apache.org/spreadsheet/quick-guide.html#DataFormats


我可以在poi API中使用绝对值吗?如果可以,怎么使用? - Ravi Parmar
是的,如果单元格设置了正确的格式,提供10将显示为10.000。 - Shamit Verma
非常感谢......但现在我的问题是如何编写绝对值?例如,-50将显示为50。 - Ravi Parmar
1
使用以下格式:######.###;######.###,它将显示-50.123为50.123。 - Shamit Verma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接