解决Excel文件流读取数字为时间乱码问题

embedded/2024/11/24 11:03:14/

在将Excel文件流转换为Java中的List时,如果遇到文本被错误地识别为日期格式的问题,这通常是由于Apache POI库在处理单元格数据时默认的行为所导致的。Apache POI会尝试根据单元格的内容自动确定其类型,包括字符串、数字(可能解释为日期)、布尔值等。

为了解决这个问题,你可以在读取单元格数据时更明确地指定如何处理数字类型的单元格,特别是当你知道某些单元格应该被当作纯文本处理时。

使用DataFormatter:
DataFormatter类是一个有用的工具,它可以根据Excel中的格式设置将单元格内容转换为字符串。这可以帮助你避免类型识别的问题,因为DataFormatter会尽量保留单元格在Excel中的显示格式。

java">import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.usermodel.DataFormatter;List<List<String>> olist2 = new ArrayList<>();
Workbook workbook = new XSSFWorkbook(file.getInputStream());
DataFormatter dataFormatter = new DataFormatter();
for (Row row : workbook.getSheetAt(0)) {if(row.getRowNum() == 0){continue;}List<String> data = new ArrayList<>();for (Cell cell : row) {String cellData = dataFormatter.formatCellValue(cell);data.add(cellData);}olist2.add(data);
}

http://www.ppmy.cn/embedded/140110.html

相关文章

安卓手机5G网络频繁掉4G 问题解决 手机5G网络优化方案

问题环境 在某个长期停留的位置&#xff08;例如&#xff1a;躺平&#xff09;使用手机时网络突然从5G跳到4G&#xff0c;偶尔跳来跳去导致网络体验很差&#xff0c;经过调整5G网络情况下网速及其他体验都要更好&#xff0c;基于这样的情况使用一种简单的操作&#xff0c;锁定5…

面向服务的软件工程——面向过程的系统分析:流程挖掘(week10)

文章目录 一、前言二、重点概念面向过程的系统分析:流程挖掘流程挖掘概述流程挖掘与数据科学的关系流程挖掘中的关键问题关于流程挖掘的常见误解应用场景流程挖掘的总体概述流程挖掘的三个技术场景流程挖掘的起点:日志数据流程挖掘中的一些符号日志条目示例事件日志的通用结构…

JMeter监听器与压测监控之Grafana

Grafana 是一个开源的度量分析和可视化套件&#xff0c;通常用于监控和观察系统和应用的性能。本文将指导你如何在 Kali Linux 上使用 Docker 来部署 Grafana 性能监控平台。 前提条件 Kali Linux&#xff1a;确保你已经安装了 Kali Linux。Docker&#xff1a;确保你的系统已…

02. Python基础知识

一、注释 在开发程序过程中&#xff0c;如果一段代码的逻辑比较复杂&#xff0c;不是特别容易理解&#xff0c;可以适当添加注释&#xff0c;以辅助自己或其他开发人员解读代码。注释是给程序员看的&#xff0c;为了让程序员方便阅读代码&#xff0c;解释器会忽略注释。在 Pyto…

多模态大模型(5)--LLaVA

人类通过如视觉、语言、听觉等多种渠道与世界互动&#xff0c;每个单独的渠道在表示和传达某些概念时都有其独特的优势&#xff0c;人工智能&#xff08;AI&#xff09;的一个核心愿景是开发一个能够有效遵循多模态视觉和语言指令的通用助手&#xff0c;与人类意图一致&#xf…

C++ 中的模板特化和偏特化 如何进行模板特化和偏特化

模板特化和偏特化的概念 模板特化&#xff08;Template Specialization&#xff09; 概念&#xff1a;模板特化是指为特定的模板参数&#xff08;或参数组合&#xff09;提供一个特殊的实现。当编译器在实例化模板时&#xff0c;如果遇到与特化版本匹配的参数类型&#xff0c;就…

洛谷P2440 木材加工

木材加工 题目背景 要保护环境 题目描述 木材厂有 n n n 根原木&#xff0c;现在想把这些木头切割成 k k k 段长度均为 l l l 的小段木头&#xff08;木头有可能有剩余&#xff09;。 当然&#xff0c;我们希望得到的小段木头越长越好&#xff0c;请求出 l l l 的最大…

备赛蓝桥杯--算法题目(1)

1. 链表求和 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {ListNode *head nullptr, *tail nullptr;int carry 0;while (l1 || l2) {int n1 l1 ? l1->val: 0;int n2 l2 ? l2->val:…