gpt4 book ai didi

java - 在 Java Poi (Excel) 中更改单元格格式(长度?)

转载 作者:行者123 更新时间:2023-12-01 18:08:50 25 4
gpt4 key购买 nike

我一直在寻找一种方法来做到这一点,但只找到了几种调整列大小的方法,但还不够。

很简单:

当我写入 Excel 文件时,数字会高于 10.000.000,并且格式会发生变化,例如:

row 11: 9.800.000

row 12: 9.900.000

row 13: 1.0E7

row 14: 1.01E7

如何防止这种情况发生?我需要整个号码,因为我稍后会从代码中再次访问此信息。

(我无法手动编辑 Excel,因为我是动态创建的,我猜(并希望)某些 Java POI 类中有一个变量,我可以为其分配一个值以进行更改?)

谢谢大家。

最佳答案

这是一个单元格格式的情况,默认情况下,Excel 对低于某个值的数字使用指数格式,对于 2013 版本,它低于 1E10。对于旧版本,我猜大约是 1E7 左右。

要解决此问题,您需要在创建 xls 文件之前使用 HSSFCellStyle 在 Java 代码中格式化单元格,请检查以下代码:

HSSFCellStyle style = workbook.createCellStyle();
style.setDataFormat(workbook.createDataFormat().getFormat("#"));

Double d = 10000000000.0;
thecell.setCellValue(d);
thecell.setCellType(Cell.CELL_TYPE_NUMERIC);
thecell.setCellStyle(style);

您可能还需要通过添加来调整列大小以适合数字

sheet.autoSizeColumn(0);

以下是带有单元格格式 (A1) 和不带单元格格式 (B1) 的输出示例:

exemple with the cell formatting

不要忘记导入必要的类。

关于java - 在 Java Poi (Excel) 中更改单元格格式(长度?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34394904/

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