我正在使用 Apache POI 的 XSSF 读取 xlsx
文件。当读取特定单元格的字体并在新单元格中应用时,该字体将应用于整个工作表而不是该特定单元格。我想要的例子:
column1 column2 column3
row1 ARIAL TIMES ROMAN ARIAL
row2 TIMES ROMAN ARIAL ARIAL
row3 ARIAL ARIAL ARIAL
我希望每个单元格中的字体与原始文件中的字体相同。
我的代码是:
public XSSFCellStyle setFontOnCell(XSSFCellStyle cellStyle, XSSFCell cell)
{
try {
font = cell.getCellStyle().getFont();
new_font.setFontName(font.getFontName());
new_font.setBoldweight(font.getBoldweight());
new_font.setFontHeight((short)font.getFontHeight());
new_font.setFamily(font.getFamily());
cellStyle.setFont(new_font);
return cellStyle;
} catch (Exception e) {
//System.out.println(e.getMessage());
return cellStyle;
}
}
最佳答案
你的new_font
似乎是一个全局变量,你不断地改变它,然后将它注入(inject)到单元格中。它应该位于 setFontOneCell()
的本地,以便每个单元格都有自己的 Font
实例,而不是所有单元格实际上都使用相同的对象,
关于java - Apache POI 设置单元格字体和字体颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10630677/