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

获取字符串值,当我从带有日期类型的excel读取时(apache poi)

扶誉
2023-03-14

我有一个xlsx文件,我正在阅读-Apache POI库。

我的目标是:读取行中的所有单元格作为字符串值。但正如我所看到的,我不能将01-sep-13作为字符串读取,它仅表示类似于带有cell.getDateCellValue()的日期类型();

1)我是否可以以某种方式将01-sep-13读作字符串:“01-sep-13”;2)如果我有不同日期模式(ddMMyyyy)和(DD-MMMYYY),我是否可以将日期值转换为字符串;

代码:

当我迭代行和单元格时,Apache POI分析每个单元格类型:

String normalizeCellType(Cell cell) {

    switch (cell.getCellType()) {
        case Cell.CELL_TYPE_STRING:
           return cell.getRichStringCellValue().getString());            
        case Cell.CELL_TYPE_NUMERIC:
            if (DateUtil.isCellDateFormatted(cell)) {

                Date date = cell.getDateCellValue(); ????????????
                System.out.println(date);

            } else {

                ....
            }
            break;
        case Cell.CELL_TYPE_BOOLEAN:
           return ....
        case Cell.CELL_TYPE_FORMULA:
           return ....
        default:
            System.out.println();
    }
}

共有1个答案

赖俊
2023-03-14

您有两个选项:

  • 使用Java的SimpleDateFormat类将返回的Date格式化为String格式,格式为您选择的格式。您可以为所需的每种不同格式使用SimpleDateFormat实例。
  • 使用Apache POI的DataFormatter类直接格式化单元格
 类似资料:
  • 问题内容: 我正在使用Apache POI库读取Excel文件。我在读取密码单元时被卡住了。如果用户在密码单元格中输入日期作为密码,即16/05/2012。我正在将此值读取为“ 41045”,而该值应为“ 16/05/2012”。这是我的代码: 有人可以帮忙吗? 谢谢。 问题答案: 您在POI中寻找的类是DataFormatter 当Excel写入文件时,某些单元格将存储为文字字符串,而另一些单元

  • 我有一个Java代码显示的内容的excel表。现在,当我处理数值/字符串/布尔数据时,它总是给出正确的结果。不同的是,为了测试我的代码,我在Excel中做了很少的改动,并添加了一个日期值(例如4-SEP-09)。在运行我的代码时,它返回了不想要的结果。代码和O/P如下所示。如何从excel表中读取和显示日期值?我在用阿帕奇POI。我可以执行类似的操作,检查单元格值是否为date,或者是否使用?这是

  • 问题内容: 即时通讯正在处理日期,并且我在从字符串中获取日期时遇到问题,我在这里简化了我的问题: 输出为:“ 25-05-2015”(可以),“ 2014年12月21日,上午12:00”(???) 问题答案: 那里的问题是为了。您必须使用。顺便说一句,不要忘记将日期格式设置的语言环境设置为“ en_US_POSIX” 。 如果您使用固定格式的日期,则应首先将日期格式器的语言环境设置为适合您的固定格

  • 问题内容: 我有一个名字叫类的名字(没有扩展名)。我想将其分配给变量,如下所示: 我怎样才能做到这一点? 问题答案: 但是您应该是完全合格的-即

  • 我正在尝试使用apache poi库来读取excel。我想将日期字段转换为字符串值。因此,我使用了以下代码: 我的约会方式很奇怪

  • 问题内容: 我在String上有个约会,像这样: 我想将其划分为: 做这个的最好方式是什么? 问题答案: 在Java中拆分字符串的一种方法是使用.split(“ regex”),该方法根据提供的模式拆分字符串,并返回String数组。 获取当前日期:您还可以通过更改传递给SimpleDateFormat的值来更改日期格式。不要忘记进口。