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

Apache POI getStringCellValue()正在打印空值

牛景同
2023-03-14

在试图通过Java中的Apache POI读取单元格值时,我遇到了一个奇怪的错误:

 System.out.println(row.getCell(13, Row.CREATE_NULL_AS_BLANK).getStringCellValue()) 

始终打印null,即使将丢失的策略指定为行。create_null_as_blank。我对单元格的写入逻辑是:

public void writeCell( String value, Sheet sheet, int rowNum, int colNum)
{
    Row row = sheet.getRow(rowNum);
    if (row == null)
    {
        row = sheet.createRow(rowNum);
    }
    Cell cell = row.createCell(colNum, Cell.CELL_TYPE_STRING);
    if (value == null)
    {
        return;
    }
    cell.setCellValue(value);
}

当我写入colNum=13的Cell时,String value对象为空。我无法解决这个问题。

共有1个答案

须捷
2023-03-14

这一行并不像你想象的那样:

System.out.println(row.getCell(13, Row.CREATE_NULL_AS_BLANK).getStringCellValue()) 

实际上,这是在做

Cell cell = row.getCell(13);
if (cell == null) { cell = row.createCell(13, Cell.CELL_TYPE_BLANK); }

因此,如果该单元格中没有任何内容,它会将其创建为空的空白单元格

 cell.getStringCellValue()

如果您真的只是想要一个单元格的字符串值,请使用DataFormatter.FormatCellValue(cell)--它返回单元格的字符串表示形式,包括格式设置。否则,在尝试获取值之前检查您的单元格的类型!

 类似资料:
  • 为了测试一个程序,我编写了以下语句:

  • 我试图构建一个基于Java、RestAssured和Cucumber的Rest API自动化。我想通过柱子击中终点。问题是,当我将响应转换为字符串时,当我打印响应时,它打印的是XML文件内容,而不是响应。我还看到状态代码为200。我不知道这里出了什么问题。下面是我的代码库中的示例代码段。 我正在尝试使用WebService(SOAP WSDL)。 我不知道为什么我会看到这种模糊。有时打印响应,有时

  • 问题内容: 我试图从我的postgres数据库中检索一些数据,并将它们打印为json。我成功地在没有json的情况下打印了它们,但我在json中需要它们。 main.go: 这是我访问localhost:1337 / db时得到的 这是终端上的输出: 有人知道是什么问题吗? 问题答案: 该包使用反射(结构的包),以存取字段。您需要导出结构的字段以使其起作用(以大写字母开头): 扫描时: 引用自:

  • 问题内容: 我该如何重写: 使用? 聚苯乙烯 我很确定这是可能的,但是javadoc有点令人困惑。 问题答案: 您需要指定字段的最小宽度。 为什么要生成一定长度的空格字符串。 如果您想要具有此长度的值的列,则可以执行以下操作: 它为您提供numberOfSpaces-5个空格,后跟Hello。如果要让Hello出现在左侧,请在numberOfSpaces之前添加减号。

  • 我正在使用Pycharm并试图将文本打印到控制台 最终打印命令('

  • 我使用。这是构建HTTP客户端的代码 下面是我如何使用它初始化我的改型API接口: