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

如何在Excel单元格中将数字字符串读取为字符串(不是数字)?

郑西岭
2023-03-14
问题内容
  1. 我有这样的内容的Excel文件:

  2. A1:SomeString

  3. A2:2

所有字段均设置为字符串格式。

  1. 当我使用POI读取Java中的文件时,它表明A2为数字单元格格式。

  2. 问题在于A2中的值可以是2或2.0(并且我希望能够区分它们),所以我不能只使用.toString()。
    如何将值读取为字符串?


问题答案:

当您提出问题时,我认为我们没有上过这堂课,但是今天有一个简单的答案。

您要做的是使用DataFormatter类。您为此传递一个单元格,它会尽力返回一个字符串,其中包含Excel将对该单元格显示的内容。如果将字符串单元格传递给它,则将字符串取回。如果您向其传递一个应用了格式设置规则的数字单元格,它将根据它们格式化数字并返回字符串。

对于您的情况,我假设数字单元格已应用整数格式设置规则。如果您要求DataFormatter格式化这些单元格,它将返回一个包含整数字符串的字符串。

另外,请注意,很多人建议这样做cell.setCellType(Cell.CELL_TYPE_STRING),但是Apache POI JavaDocs清楚地表明您不应该这样做!进行setCellType调用会导致格式设置松散,因为javadocs解释了剩下的格式转换为String的唯一方法是使用DataFormatter类。



 类似资料:
  • 问题内容: 我正在使用Apache POI读取Excel文件。在阅读时,我注意到它将字符串作为浮点值。 如果我的单元格包含1,则它将获取为1.0 我从以前的问题中得到了一些提示,并修改了代码,但float表示仍然保持原样。 如何正确读取字符串和日期的数据? 问题答案: 对评论发表评论 问题是电话 这样做是在要求POI尝试将单元格从当前单元格(例如数字)转换为字符串。尝试执行此转换非常简单,这就是为

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

  • 我的C#. Net应用程序通过使用excel公式字符串加载和读取excel工作表单元格值。 例如,excel工作表位置和选项卡名称及其单元格行/列将作为公式字符串提供。 'D:\DataX[数据.Xls]EOD'$A5级 根据上述公式-C#应用程序加载数据。Xls,并打开EOD选项卡,应读取第5行A列值。 寻找在C#中完成的最佳方式。Net框架。

  • 问题内容: 我需要找出如何将数字格式化为字符串。我的代码在这里: 小时和分钟是整数,而秒是浮点数。str()函数会将所有这些数字转换为十分之几(0.1)。因此,而不是我的字符串输出“ 5:30:59.07 pm”,它将显示类似“ 5.0:30.0:59.1 pm”的内容。 最重要的是,我需要为我执行什么库/函数? 问题答案: 从Python 3.6开始,可以使用格式化的字符串文字或 f-strin

  • 如何在Go中获取字符串的字符数? 例如,如果我有一个字符串“hello”,该方法应该返回5。我看到返回字节数,而不是字符数,因此返回2而不是1,因为在UTF-8中用两个字节编码。

  • 问题内容: 我正在尝试找到一种将String拆分为String数组的方法,并且每当遇到白色香料时就需要对其进行拆分,例如 “嗨,我是保罗” 进入” “嗨”“我”“保罗” 如何使用RegularExpression在split()方法中表示空格? 问题答案: 您需要一个正则表达式,例如,这意味着: 每当遇到至少一个空格时就进行拆分 。完整的Java代码是: