java在Apache Poi 3.7中以特定格式在数字单元格中写入双值
我需要使用特定格式在数字单元格中写入一个双精度值,我的意思是,生成的xls必须具有包含双精度值的数字单元格,例如:8,1。我正在尝试类似于:
DecimalFormat dFormat = new DecimalFormat("##.#");
dFormat.format(doubleValue);
但是,由于format方法返回字符串,所以无论我是否将单元格创建为数字单元格,它们的行为始终与文本单元格相同。我在考虑两个选择:
- 强制单元格表现为数字单元格李>
- 忘记DecimalFormat并使用双类指定逗号作为十进制分隔符,我不确定这是否可行李>
有什么想法吗
# 1 楼答案
我可能遗漏了一些内容,但我认为您只需要使用格式规则来设置单元格的样式,以显示一个小数位
这将创建一个格式化规则,创建一个单元格,将单元格设置为值8.1,然后设置样式
# 2 楼答案
是否需要将两个值都放在一个单元格中?你能把它们分成两列吗?Excel有一个内置的“文本到列”函数,您应该能够引用该函数,该函数将根据分隔符(如逗号)将整个文本字符串列拆分为多个列。在VBA中,它看起来像这样:
对于您提出的第一个解决方案,如果某个内容不能转换为数字,则不可能强制Excel将其视为数字
# 3 楼答案
我试过了,效果很好
输出为所需格式的数值:2500.000