分享一个java中读取excel的方法

一、前端传递后端一个excel文件

代码:

java 复制代码
 String file = param.get("file").split(",")[1];
        byte[] content = Base64.decodeBase64(file);
        InputStream inputStream = new ByteArrayInputStream(content);
        Map<String, List<Map<String, String>>> result = XSSFUtil.read(inputStream);
  for (Map.Entry<String, List<Map<String, String>>> entry : result.entrySet()) {
            List<Map<String, String>> val = entry.getValue();
            for (int i = 0; i < val.size(); i++) {
                Map<String, String> temp = val.get(i);
                AdditionalRecordInfo additionalRecordInfo = new AdditionalRecordInfo();
                for (Map.Entry<String, String> tempEntry : temp.entrySet()) {
                    String k = tempEntry.getKey();
                    String v = tempEntry.getValue();
    }
  }
}

1.String file = param.get("file").split(",")[1];:从param中获取名为"file"的参数值,假定这个值是一个包含Base64编码的字符串。通过split(",")方法将字符串按逗号分割,然后取第二部分(索引为1的部分),这是因为Base64编码的字符串通常以"data:image/xxx;base64,"开头,实际数据在逗号之后。

2.byte[] content = Base64.decodeBase64(file);:使用Apache Commons Codec库中的Base64类的decodeBase64方法将Base64编码的字符串解码为字节数组。这样就得到了原始的文件内容。

3.InputStream inputStream = new ByteArrayInputStream(content);:将字节数组包装成ByteArrayInputStream,以便后续处理。ByteArrayInputStream是一个InputStream的实现类,可以用于从字节数组中读取数据。

4.Map<String, List<Map<String, String>>> result = XSSFUtil.read(inputStream);:使用XSSFUtil工具类的read方法读取Excel文件的内容。result是一个Map,其中键是Excel的工作表名称,值是该工作表中的数据,数据是以List包装的Map

5.遍历每一列即可

相关推荐
wuminyu1 分钟前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
callJJ1 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
wbs_scy2 小时前
Linux线程同步与互斥(三):线程同步深度解析之POSIX 信号量与环形队列生产者消费者模型,从原理到源码彻底吃透
java·开发语言
开开心心就好2 小时前
仅168KB的桌面图标自动隐藏工具
windows·计算机视觉·计算机外设·excel·启发式算法·宽度优先·csdn开发云
jinanwuhuaguo4 小时前
(第三十三篇)五月的文明奠基:OpenClaw 2026.5.2版本的文明级解读
android·java·开发语言·人工智能·github·拓扑学·openclaw
xmjd msup4 小时前
spring security 超详细使用教程(接入springboot、前后端分离)
java·spring boot·spring
952365 小时前
SpringBoot统一功能处理
java·spring boot·后端
Lyyaoo.5 小时前
优惠券秒杀业务分析
java·开发语言
消失的旧时光-19435 小时前
统一并发模型:线程、Reactor、协程本质是一件事(从线程到协程 · 第6篇·终章)
java·python·算法
勿忘初心12215 小时前
Java 国密 SM4 加密工具类实战(Hutool + BouncyCastle)|企业级数据加密 + 兼容 JDK8
java·数据安全·数据加密·后端开发·企业级开发·国密 sm4