如何在 DataFormatter 中编辑模式?

2023-12-10

我想用Java读取Excel中的数据,Excel中单元格的数据有2种类型是NUMERIC and STRING。所以当我想将数据读取为NUMERIC,它只显示数字101125340004,不是这样的1.01E+11因为它是电话属性。我的代码正在工作,但对于某些值(1%)仍然显示浮点数,但它们实际上是整数,我不知道为什么。

Data in sheet of Excel 365 enter image description here

DataFormatter fmt = new DataFormatter();
if (cellType.toString().equals("NUMERIC"))
    companyTel = fmt.formatCellValue(currentRow.getCell(8));
else
    companyTel = currentRow.getCell(8).toString();  

Output still got floating-point number in database enter image description here

我使用的 Java Apache POI 版本是 3.17。

请告诉我上面的代码有什么问题或者如何解决这个问题?谢谢你们。


Microsoft Excel当单元格数字格式时,将超过 11 位数字的值转换为科学记数法General用来。所以842223622111导致8,42224E+11 in Excel具有数字格式的单元格General. If in Excel单元格应显示842223622111,然后是一个特殊的数字格式(0)需要代替General.

您可以阅读有关Office 365 Excel 中的可用数字格式以及其特殊行为General大数字(12 位或更多数字)的格式。

Libreoffice/OpenOffice Calc不会这样做。那里842223622111 stays 842223622111在具有数字格式的单元格中General.

现在,如果apache poi得到一个包含842223622111并具有数字格式General, then DataFormatter将这样格式化Excel也会做。

如果你想要DataFormatter应该将其格式化为更像Libreoffice/OpenOffice Calc,那么你可以这样做:

...
DataFormatter fmt = new DataFormatter();
...
fmt.addFormat("General", new java.text.DecimalFormat("#.###############"));
...

使用这种方法,不会改变Excel表是必要的。但当然默认行为apache poi's DataFormatter被改变了。为了避免这种情况,您可以格式化受影响的单元格Excel使用数字格式0,即Number没有千位分隔符且小数点位数 = 0。

但既然您提到此列包含电话号码,最常见的解决方案是使用数字格式格式化整个列Text (@)。这“将单元格的内容视为文本,并按照您键入的内容准确显示内容,即使您键入数字也是如此。”因此,在应用格式之后,科学记数法将不再发生任何变化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 DataFormatter 中编辑模式? 的相关文章

随机推荐

  • 使用 sqlalchemy 时出现编程错误:(psycopg2.errors.UndefinedColumn)

    我在查询使用 sqlalchemy 在 postgres db 本地 上创建的表时遇到问题 虽然我能够执行并接收查询结果 SELECT FROM olympic games 当我尝试访问单个列或对表执行任何其他操作时收到错误消息 SELEC
  • 如何在 UIWebView 中从 Javascript 调用 Objective-C 方法?

    我正在使用 Phonegap 开发一个本机 iPhone 应用程序 因此一切都是用 HTML 和 JS 完成的 我正在使用 Flurry SDK 进行分析并希望使用 FlurryAPI logEvent EVENT NAME 跟踪事件的方法
  • 通过 AFNetworking 上传到 Amazon-S3

    我在通过 AFNetworking 将文件上传到 S3 时遇到困难 当我尝试上传时 我收到回调 表明文件的一小部分已上传 然后回调停止 一两分钟后我收到一条超时消息 我在用着亚马逊S3客户端但它似乎是 AFHTTPClient 的一个非常直
  • ADF - 迭代选择输出到复制活动

    我们有一个 SP 其中 SP 执行并返回多个结果集 其中列号发生变化 如下所示 create proc test ab as select 1 as num1 select 1 as num1 2 as num2 select 1 as n
  • 对 AVPlayerLayer videoGravity 属性进行动画处理

    我试图复制苹果在视频播放方面的行为 允许用户拉伸视频图像以填充边界 interface FHVideoPlayerView UIView end interface FHVideoPlayerView Class layerClass re
  • 如何根据其他微调器获取微调器值

    我有两个旋转项目 一个是我的日旋转器 另一个是我的月旋转器 如果我从月份微调器中选择二月 并且如果我选择日期为 30 则不应执行此操作 另一个例子 四月有 30 天 所以如果有人选择月份为四月 日期为 31 日 那么这是不正确的 请告诉我如
  • 在 Android Studio 中禁用“添加到 VCS”

    我已经在 Android 开发中使用 Intellij IDEA w git 集成有一段时间了 我最近升级到 Android Studio v0 1 1 现在我最喜欢的快捷键之一 Ctrl Command A 添加到 VCS 始终被禁用 这
  • iOS 选项弹出窗口 - 类似于剪切/复制/粘贴

    对于我正在开发的应用程序 我需要一些弹出选项 类似于在 UITextView 或 UIWebView 中选择文本时剪切 复制 粘贴的显示方式 但是 我无法找到这种弹出窗口的名称 是否有针对它们的公共 API 或者是否必须从头开始实现 您要查
  • 通知:本地通知的自定义声音在 iOS10 中不播放

    我正在发出本地通知 自从UILocalNotification类在 iOS 10 中已弃用 我已经使用过UserNotifications framework 当我尝试设置通知的自定义声音时 默认声音始终播放 这是我的代码 IBAction
  • Spring mvc:访问外部文件夹的资源

    我已将媒体 图片和电影 存储在文件夹中 例如 C test tes png 并且我尝试使用以下网址访问图片 http localhost 8080 app picture test png 为此 我使用了资源标签 spring 3 如下所示
  • Mozilla 浏览器上的高对比度模式

    我无法在 Mozilla Firefox 浏览器中使用任何高对比度模式的媒体查询 给出的媒体查询在 IE 和 Edge 上运行良好 但在 Mozilla 上不起作用 这些图像不会以高对比度模式出现在 Mozilla 上 有人可以建议任何以高
  • 使用 PDO 时“注意:未定义的变量:db”[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 为了学习 PDO 我编写了以下代码 sql SELECT FROM category O
  • 如何将不同模式的通用数据插入到临时表中?

    我不知道如何解决这个问题 我们从各种在线供应商 亚马逊 新蛋等 导入订单信息 每个供应商都有自己特定的订单术语和结构 我们已将其镜像到数据库中 我们的数据导入数据库没有任何问题 但是我面临的问题是编写一个方法 从数据库中提取所需的字段 而不
  • 如何从一个视图到另一个视图访问/打印 NSMutableArray 元素?

    我有一个NSMutableArray named mArray in view1它存储一些字符串 现在我想访问 打印 比较这些元素view2 请指导我 在view1类中为marray编写属性synthesize 然后在view2中创建vie
  • 从元组中获取随机元素的最快方法是什么? (Python)

    你能比这个基本实现做得更好吗 import random def get random element tuple return tuple randint 0 len tuple 1 gt gt gt import random gt g
  • 为什么 Microsoft Edge(以前称为 Project Spartan)提示在 Internet Explorer 中打开此网站?

    有谁知道是什么触发 MS Edge 不打开特定网页 网站 而是提示用户在 Internet Explorer 中打开该网站 消息说 该网站需要 Internet Explorer 本网站使用的技术在 Internet Explorer 中效
  • python 中的原子 `ln -sf` (符号链接覆盖现有文件)

    我想创建一个符号链接 如果需要的话覆盖现有文件或符号链接 我发现os path exists只返回True对于未损坏的符号链接 所以我猜测任何测试还必须包括os path lexists 最原子的实现方式是什么ln sf在Python中 即
  • Angular 中的交叉口观察者

    我正在尝试设置IntersectionObserver在 Angular 中 但我无法让它工作 我想在向下滚动时加载数据HttpClient从服务器 我正在做这样的事情 在页面底部的 HTML 中 我有以下内容 div div 在我正在使用
  • VS2013下marshal.cxx中未处理的异常

    调试我的 C 应用程序时 我在 marshal cxx 中遇到了一次未处理的异常 并具有以下堆栈跟踪 ole32 dll CStdMarshal Disconnect unsigned long dwType 第 3420 行 C ole3
  • 如何在 DataFormatter 中编辑模式?

    我想用Java读取Excel中的数据 Excel中单元格的数据有2种类型是NUMERIC and STRING 所以当我想将数据读取为NUMERIC 它只显示数字101125340004 不是这样的1 01E 11因为它是电话属性 我的代码