分享一个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.遍历每一列即可

相关推荐
CoderYanger5 分钟前
优选算法-字符串:63.二进制求和
java·开发语言·算法·leetcode·职场和发展·1024程序员节
3***31216 分钟前
java进阶1——JVM
java·开发语言·jvm
FeiHuo5651518 分钟前
微信个人号开发中如何高效实现API二次开发
java·开发语言·python·微信
源码技术栈26 分钟前
什么是云门诊系统、云诊所系统?
java·vue.js·spring boot·源码·门诊·云门诊
Coder-coco36 分钟前
游戏助手|游戏攻略|基于SprinBoot+vue的游戏攻略系统小程序(源码+数据库+文档)
java·vue.js·spring boot·游戏·小程序·论文·游戏助手
Qiuner37 分钟前
Spring Boot 机制二:配置属性绑定 Binder 源码解析(ConfigurationProperties 全链路)
java·spring boot·后端·spring·binder
D***77652 小时前
适用于IntelliJ IDEA 2024.1.2部署Tomcat的完整方法,以及笔者踩的坑,避免高血压,保姆级教程
java·tomcat·intellij-idea
20岁30年经验的码农2 小时前
Spring Security 6.x 安全实践指南
java
胖咕噜的稞达鸭3 小时前
自定义shell命令行解释器自制
java·开发语言
q***33376 小时前
oracle 12c查看执行过的sql及当前正在执行的sql
java·sql·oracle