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

Apache POI-在单个命令中创建单元格、设置单元格值和单元格样式

宋宏儒
2023-03-14
HSSFRow row = sheetBenefits.createRow(rowNoPB+i);
HSSFCell cell0 = row.createCell(1);
cell0.setCellStyle(style);
cell0.setCellValue(new String("Survey "+i));
row.createCell(1).setCellValue(new String("Survey "+i));

我无法将此行的样式设置为:

row.createCell(1).setCellValue(new String("Survey"+i)).setCellStyle(style);

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

共有1个答案

姬宝
2023-03-14

SetCellValue方法的返回类型为void,因此在调用SetCellValue后放置SetCellStyle方法是无效的。

另一方面,您可能会考虑编写一个静态方法来为您完成这项工作。

public static Cell addCell(Row row, int columnIndex, CellStyle cellStyle, String value) 
{
    Cell cell = row.createCell(columnIndex);
    cell.setStyle(cellStyle); 
    cell.setValue(value);
    return cell;
}

要添加单元格,只需调用静态方法:

addCell(row, 1, cellStyle, "Hell World");
 类似资料:
  • 如何为单个单元格设置两种不同的样式?当前我正在显示中的单元格值 粗体 货币格式,例如:.

  • 插入文字 插入链接 插入公式 插入日期 插入本地图片 自动过滤 冻结单元格 合并单元格 行单元格样式 列单元格样式

  • setColumn 样式影响范围为整列。 设置 range 参数为 A1:D1,第一反应是设置第一行的前四个单元格样式,但是实际效果确是设置 第一列、第二列、第三列、第四列 整列。 函数原型 setColumn(string $range, double $width [, resource $formatHandler]); string $range $config = ['path' =>

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

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