当前位置: 首页 > 面试题库 >

POI将Excel字符串读取为数字

山阳辉
2023-03-14
问题内容

我正在使用Apache POI读取Excel文件。在阅读时,我注意到它将字符串作为浮点值。

如果我的单元格包含1,则它将获取为1.0

我从以前的问题中得到了一些提示,并修改了代码,但float表示仍然保持原样。

如何正确读取字符串和日期的数据?

DataFormatter df = new DataFormatter();

        for (Row row : sheet) {

            for(int cn=0; cn<row.getLastCellNum(); cn++) {
                   // If the cell is missing from the file, generate a blank one
                   // (Works by specifying a MissingCellPolicy)
                   Cell cell = row.getCell(cn, Row.CREATE_NULL_AS_BLANK);
                   // Print the cell for debugging
                   cell.setCellType(Cell.CELL_TYPE_STRING);

                   System.out.println("CELL: " + cn + " --> " + df.formatCellValue(cell));

                   if (row.getRowNum() == 0) {

                        sheetColumnNames.add(cell.getRichStringCellValue().getString());
                    }

            }

        }

问题答案:

对评论发表评论

问题是电话

cell.setCellType(Cell.CELL_TYPE_STRING);

这样做是在要求POI尝试将单元格从当前单元格(例如数字)转换为字符串。尝试执行此转换非常简单,这就是为什么您失去格式的原因

如果您只想取回包含Excel中所示的单元格值的字符串,则DataFormatter直接调用即可,它将尽力而为。摆弄单元格类型只会使事情变得混乱,并且可能会失去格式化的风险



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

  • 问题内容: 我有这样的内容的Excel文件: A1:SomeString A2:2 所有字段均设置为字符串格式。 当我使用POI读取Java中的文件时,它表明A2为数字单元格格式。 问题在于A2中的值可以是2或2.0(并且我希望能够区分它们),所以我不能只使用.toString()。 如何将值读取为字符串? 问题答案: 当您提出问题时,我认为我们没有上过这堂课,但是今天有一个简单的答案。 您要做的

  • 找不到很多这个确切用例的例子。基本上,我有两个目录,其中应该包含相同的文件,混合了。xlsx文件和。txt文件。我编写了一系列代码来比较。xlsx文件很好,还可以返回它发现的任何不匹配(行、列)的坐标。 我的代码似乎有一个问题做同样的文本文件,我可以通过excel手动打开这个罚款,这是一个标签分隔的文本文件。 当我尝试将其转换为XSSFWorkbook时,它不喜欢,其中文件excelFile1是我

  • 我需要在android中以字符串的形式加载一个xml文件,以便将其加载到TBXML xml解析器库并对其进行解析。我现在必须以字符串形式读取文件的实现需要大约2秒,即使对于一些KBs的非常小的xml文件也是如此。在Java/Android中,有没有已知的快速方法可以将文件读取为字符串? 这是我现在拥有的代码:

  • 我使用apache poi将一个CSV文件重写到Excel,对于hh:mm:ss这样的字符串,我需要将其转换为适当的Excel数据类型,以便用户可以对该列应用sum()函数。我尝试了不同的数据类型,但当我打开excel文件时,我无法对该列进行求和,求和总是显示为“0:00:00”,即使单击excel中的该列显示为“Time”数据类型, 下面是我的代码:

  • 问题内容: 我正在使用Apache POI库读取Excel文件。我在读取密码单元时被卡住了。如果用户在密码单元格中输入日期作为密码,即16/05/2012。我正在将此值读取为“ 41045”,而该值应为“ 16/05/2012”。这是我的代码: 有人可以帮忙吗? 谢谢。 问题答案: 您在POI中寻找的类是DataFormatter 当Excel写入文件时,某些单元格将存储为文字字符串,而另一些单元