当前位置: 首页 > 知识库问答 >
问题:

Apache POI,创建新单元格将覆盖行样式

方季同
2023-03-14

我正在使用Apache POI将数据导出到一个.xlsx文件,我想对文件中包含的一些行和单元格设置样式。

我使用XSSF,因为该文件将在Excel2007+中读取。

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet("mySheet");
XSSFRow row = sheet.createRow(0);

XSSFCellStyle myStyle = wb.createCellStyle();           

myStyle.setFillForegroundColor(new XSSFColor(new Color(255, 255, 255)));
myStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);

row.setRowStyle(myStyle); //This works, the whole row is now black

row.createCell(0); // This cell doesn't have a style, the rest of the line stays stylized
row.getCell(0).setCellValue("Test");

共有1个答案

丁文轩
2023-03-14

将样式也设置到新创建的单元格中,例如:

    XSSFCell newCell = row.createCell(0);
    newCell.setCellStyle(myStyle);
 类似资料:
  • setRow 样式影响范围为整行。 设置 range 参数为 A1:D1,第一反应是设置第一行的前四个单元格样式,但是实际效果确是设置 第一行整行。 如果是 A1:B3 ,就会设置 第一行、第二行、第三行样式,因为单元格范围覆盖了 第一行、第二行、第三行。 函数原型 setRow(string $range, double $height [, resource $formatHandler]);

  • 在我的java类中,我声明的单元格如下: 我在很多地方使用这个单元格来创建一个单元格并设置值和样式。如: 现在,令人惊讶的是,第一个单元格的数据格式被应用到第二个单元格。有人知道吗?我希望第二牢房的风格是无。第一个单元格的样式应该是setCellStyle()方法应用的数据格式。但是,实际上我得到的是setCellStyle()方法应用的数据格式的两个单元格值。 setCellStyle()方法:

  • 我无法将此行的样式设置为: 它给我的错误是“无法在基元类型void上调用setCellValue(String)”。这种情况下的错误是什么?我如何在单行代码中实现所有3个目标?

  • 问题内容: 我有以下风格: 它来自主题的CSS样式文件。但是我想用这种风格覆盖它: 但这没有效果,我的组件使用第一种样式。如何覆盖第一个样式1?我尝试过,但它什么也没做。 我应该在css文件的开头定义自定义样式吗? 更新: 我发现我可以使用函数gridOptions.getRowClass设置要使用的样式类。但是我想解决中心问题(对于我在应用程序中使用的所有角度网格)。任何的想法? 问题答案: 你

  • 本质上,我编码的是一个益智游戏。 我认为这是因为前面设置的阻止了值的工作。 我插入了一些值来检查方法是否正在运行,它运行了,但是当用户单击“开始游戏”时,图像仍然拒绝出现在按钮上。

  • 问题内容: 我查看了Stack Overflow,但没有找到解决方案,我知道如何在样式存在的情况下覆盖样式,只需更改其属性即可。但是现在我有一种奇怪的样式可以覆盖 这是我所拥有的一个例子 首先我有一个: 现在,我需要使用以下一种样式来覆盖该样式: 问题是第一种样式会追加第二种,但是我不希望那样,在第二种样式中我只需要一行,而不是从第一种样式追加? 问题答案: 您可以将另一个类添加到元素中,而不是重