我正在使用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;
}
}
答案 0 :(得分:1)
您的new_font
似乎是一个全局变量,您不断更改它,然后将其注入单元格。它应该是setFontOneCell()
的本地,以便每个单元格都有自己的Font
实例,而不是所有实例都使用相同的对象,