说明如何在更改样式后更改单元格类型



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

找到它们并将字体更改为粗体(或更改前色调)后,单元格类型更改为默认状态,我得到:b1.3882 2e +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);

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

@maraca谢谢你的帮助我所做的是:

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

所以格式改变产生了差异

setCellType官方文档(link):

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

所以,只要切换语句,它应该工作:

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

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

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

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

(只是为了说明原则,不要每次都创建新的数据格式,重用。)

相关内容

最新更新