Java读取Excel文件转Json

本文介绍如何在Java中利用POI库读取Excel文件,并通过fastjson将其内容转换成Json格式,包括安装相关依赖和展示转换的代码示例。

Java读取Excel文件转Json

一、安装POI和fastjson依赖

<!--POI-->
<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi</artifactId>
	<version>3.9</version>
</dependency>
<dependency>
	<groupId>org.apache.poi</groupId>
	<artifactId>poi-ooxml</artifactId>
	<version>3.9</version>
</dependency>
<!--fastjson-->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>fastjson</artifactId>
	<version>1.2.60</version>
</dependency>

二、代码

package excel2Json;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.poi.ss.usermodel.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.FileInputStream
使用 Java 实现将 Excel 文件解析为 JSON 文件可以按照以下思路进行,以下结合引用内容给出示例步骤和代码。 ### 思路 首先读取 Excel 文件,将其数据存储为合适的数据结构,如 `Map` 集合,接着遍历该集合,将数据换为 JSON 对象,最后将 JSON 对象存储在 `JSONArray` 中,若某行数据存在为空的情况,可根据业务逻辑选择是否加入。 ### 代码示例 ```java import org.json.JSONArray; import org.json.JSONObject; import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ExcelToJson { private static final Logger log = LoggerFactory.getLogger(ExcelToJson.class); public static JSONArray convertExcelToJson(List<Map<String, String>> maps) { JSONArray jsonArray = new JSONArray(); for (Map<String, String> map : maps) { boolean putFlag = true; JSONObject jsonObject = new JSONObject(); for (Map.Entry<String, String> entry : map.entrySet()) { // 此行有一处数据为空则不加入,自己根据业务逻辑加判断 if (StringUtils.isBlank(entry.getValue())) { putFlag = false; break; } jsonObject.put(entry.getKey(), entry.getValue()); } if (putFlag) { jsonArray.add(jsonObject); } } log.info("excel解析完数据为:{}", jsonArray.toString()); return jsonArray; } } ``` ### 代码解释 - `convertExcelToJson` 方法接收一个 `List<Map<String, String>>` 类型的参数 `maps`,该参数代Excel 文件读取的数据。 - 遍历 `maps` 集合,对于每个 `Map` 对象,创建一个 `JSONObject` 对象。 - 遍历 `Map` 中的键值对,若值为空,则将 `putFlag` 置为 `false` 并跳出内层循环。 - 若 `putFlag` 为 `true`,则将 `JSONObject` 对象添加到 `JSONArray` 中。 - 最后使用日志记录解析完成的 JSON 数据。 ### 调用示例 假设已经有一个 `List<Map<String, String>>` 类型的 `excelData` 对象存储了 Excel 文件的数据,可以这样调用: ```java import org.json.JSONArray; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) { // 假设 excelData 是从 Excel 文件读取的数据 List<Map<String, String>> excelData = null; JSONArray jsonArray = ExcelToJson.convertExcelToJson(excelData); // 可以将 jsonArray 写入文件等操作 } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值