我正在编辑一个xlsx文件,然后我试图在数字单元格中发现一些错误并加粗。 例如,数字很大:13882004729568

找到它们并将字体更改为粗体(或更改前景色)后,单元格类型更改为默认状态,即使尝试将类型更改为数值,我也会得到:b1.3882E + 13。

XSSFFont italic = wb.createFont();
italic.setFontName("Arial");
italic.setItalic(true);
CellStyle italicStyle = wb.createCellStyle();
italicStyle.setFont(italic);
cell.setCellStyle(italicStyle);
cell.setCellType(XSSFCell.CELL_TYPE_NUMERIC);

难道我做错了什么 ? 还有其他方法吗?

===============>>#1 票数:2

@maraca thx为我提供的帮助是:

XSSFDataFormat df = wb.createDataFormat();
italicStyle.setDataFormat(df.getFormat("##0"));

因此格式更改带来了不同

===============>>#2 票数:1

setCellType正式文档( link ):

设置单元格类型(数字,公式或字符串)。 如果单元格当前包含一个值,则将尽可能转换该值以匹配新类型。 但是,格式化通常会在此过程中丢失。

因此,只需切换语句即可使用:

cell.setCellType(XSSFCell.CELL_TYPE_NUMERIC);
cell.setCellStyle(italicStyle);

另一种可能性是样式用完了,因为每次都创建一个新样式。 一次创建样式并重复使用。

您可以在更改单元格类型之前获取样式,或者也必须设置格式:

italicStyle.setDataFormat(wb.createDataFormat().getFormat("0"));

(仅出于显示原则,不要每次都创建新的数据格式,以供重用。)

  ask by Gurman Eduard translate from so

未解决问题?本站智能推荐:

1回复

更改某些单元格后如何使用POI读取Excel公式的结果

我有一个简单的Excel文件,其中A1为B1 + C1。 B1为1,C1为4 我可以使用POI读取它,并显​​示A1中公式的结果: 现在假设我更新了B1: 如何从A1读取更新的值(9)。 文档建议使用XSSFFormulaEvaluator的validate(cell)
1回复

如何更改特定单元格apache poi的字体颜色3.9

我可以在apache POI中使用以下代码更改前景色。 现在我想更改单个单元格的字体颜色。 我试过这个,但它没有改变前两列的颜色 码:
1回复

通过apache-poi在Excel中更改单元格的值

我正在尝试更改.xls文档中单元格的值。 在.xls文件中,我只有1个单元格-A1,里面有abc值。 我的代码: 如何提交此更改? 当我打开.xls文件时,我在A1内仍然有abc值。
1回复

如何获取空单元格POI的单元格样式

我正在使用poi-ooxml@3.17读写Excel文件。 我在某些单元格上添加了一些样式/保护。 当我读取文件时,我无法获取应用于无值单元格的单元格样式,因为当我尝试访问具有空值的行/单元格时,它将返回null。 以下是将数据写入同一excel文件中的代码。 谁能提供一个解决
1回复

APACHE POI-将单元格样式设置为时间

我正在尝试将列样式设置为时间,以将日期对象显示为HH:mm 我尝试了这种方法: 但是我得到的只是这样的东西:25986.4895833333。 当我手动将单元格格式设置为“ 时间”时,我需要正确的显示:11:45 我做错什么了吗? 谢谢你们。
1回复

将样式应用于单元格区域 - Apache POI

我正在寻找一种解决方案,将样式应用于一系列单元格,而无需在其上循环。 尝试在stackoverflow上找到的其他解决方案,其中没有一个工作。 例如,这对我不起作用: 它在选区的外边缘添加边框,而不是内部的单元格。 我想为范围内的每个单元格设置边框。 没有循环,这甚至可能吗?
2回复

Apache POI中的负单元格值样式

使用Apache POI生成文档,并且单元格样式有一个小问题,目前我正在使用: 对于正数,这完全可以正常工作,但是我想为负数单元格自动分配其他样式。 问题是否有任何设置方式而不必检查单个单元格值并为其分配单独的样式? 或者,是否有任何方法可以告诉Apache POI使用内置的
1回复

在excel中更改其他单元格值时更改单元格值[通过Apache POI进行数据验证]

我正在编写一个Java类,用于创建带有一些数据验证的Excel数据。 我有一列显示带有一些值的下拉列表。 更改下拉值时,应更改该行其他列的单元格值。 例如,我有2列事件名称和事件ID。 “事件名称”列是显示事件名称的下拉数据。 更改事件名称时,应更改相应事件名称的eventId。
2回复

如何使用apache poi更改excel表单相同单元格中的特定文本颜色?

有谁知道如何更改excel中单元格的特定文本的颜色。 我正在使用apache poi,我可以找到改变整个单元格的文本颜色。 但我只想要一个特定的文字。 例如:Cell A1有Hello World我希望“Hello”为蓝色,“World”为绿色。 我该怎么做呢?
1回复

从MS Excel中查看时,Java,Apache POI,单元格值不会更改

我正在使用Apache POI修改现有的Excel文件(something.xls)。 在使用以下命令设置单元格值后: 我可以看到以下更改从同一单元格读取值: 但是,当我使用MS Excel打开something.xls文件时,更改已消失。 现在有趣的部分: -