一、前端传递后端一个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.遍历每一列即可