java - Apache POI 设置单元格字体和字体颜色

标签 java apache-poi

我正在使用 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/

相关文章:

java - 在工作表中添加大量 ValidationData 时,POI 会写入损坏的 .xlsx

java - 如何通过 Apache POI API 使用 java 获取幻灯片编号

java - 如何通过 API 将 switchvox 中的调用转移给特定运算符(operator)

java - 设置存储位置 JackRabbit

java - 递归查找排序数组中第一次出现的数字

java - 使用 apache POI 在现有 Excel 文件之间插入新列

java - 使用java在浏览器中下载Excel文件

java - Java 中的单元测试缺少分支覆盖率

Java JVM 范围的设置

java - 如何使用 apache poi 为 3 个单元格设置注释