首页 前端知识 Java实战:JSON文件到Excel文件的转换

Java实战:JSON文件到Excel文件的转换

2024-09-08 02:09:50 前端知识 前端哥 759 911 我要收藏

步骤

  1. 添加依赖

首先,确保你的项目中已经添加了fastjsonpoi的依赖。如果你使用的是Maven,可以在pom.xml中添加以下依赖:

复制

xml复制代码

<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version> <!-- 请检查最新版本 -->
</dependency>
<!-- Apache POI -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version> <!-- 请检查最新版本 -->
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version> <!-- 请检查最新版本 -->
</dependency>
  1. 解析JSON文件

使用fastjson库来解析JSON文件,并将其转换为Java对象。
3. 创建Excel文件

使用Apache POI库来创建Excel文件,并将Java对象的数据填充到Excel中。

源代码

假设我们有一个User类,以及一个包含多个User对象的JSON文件。

User.java

复制

java复制代码

package com.xsz.programmingarsenal.excel.example;
import lombok.Data;
@Data
public class User {
private String name;
private int age;
// getters and setters
}
复制

JsonToExcelConverter.java

package com.xsz.programmingarsenal.excel.example;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
public class JsonToExcelConverter {
public static void main(String[] args) {
String jsonFilePath = "C:\\Users\\Brad\\Downloads\\wechatpay-java-main (1)\\ProgrammingArsenal\\src\\main\\resources\\data\\file.json";
String excelFilePath = "C:\\Users\\Brad\\Downloads\\wechatpay-java-main (1)\\ProgrammingArsenal\\src\\main\\resources\\data\\file.xlsx";
convertJsonToExcel(jsonFilePath, excelFilePath);
}
public static void convertJsonToExcel(String jsonFilePath, String excelFilePath) {
try {
// 读取JSON文件
String jsonContent = new String(Files.readAllBytes(Paths.get(jsonFilePath)));
JSONArray jsonArray = JSON.parseArray(jsonContent);
// 创建Excel工作簿和工作表
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Users");
// 创建表头
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("Name");
headerRow.createCell(1).setCellValue("Age");
// 填充数据
int rowNum = 1;
for (Object obj : jsonArray) {
JSONObject jsonObject = (JSONObject) obj;
User user = JSON.toJavaObject(jsonObject, User.class);
Row row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(user.getName());
row.createCell(1).setCellValue(String.valueOf(user.getAge()));
}
// 写入Excel文件
try (FileOutputStream outputStream = new FileOutputStream(excelFilePath)) {
workbook.write(outputStream);
}
System.out.println("Excel file created successfully!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
复制


注意事项

  • 确保你的JSON文件路径和Excel输出文件路径是正确的。
  • 这个示例假设你的JSON文件是一个数组,其中每个元素都是一个User对象的表示。你需要根据你的实际JSON结构进行调整。
  • 这个示例使用了XSSFWorkbook来创建.xlsx格式的Excel文件。如果你需要创建.xls格式的文件,可以使用HSSFWorkbook
  • 在处理文件和I/O操作时,始终要确保处理可能出现的异常。在这个示例中,我简单地打印了堆栈跟踪,但在实际项目中,你可能需要更复杂的错误处理逻辑。

源码地址:ProgrammingArsenal · bsea/ProgrammingArsenal - 码云 - 开源中国 (gitee.com)

转载请注明出处或者链接地址:https://www.qianduange.cn//article/17897.html
标签
评论
发布的文章

安装Nodejs后,npm无法使用

2024-11-30 11:11:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!