首先,确保你的项目中已经添加了fastjson
和poi
的依赖。如果你使用的是Maven,可以在pom.xml
中添加以下依赖:
xml复制代码
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
使用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();
- }
- }
- }
注意事项
XSSFWorkbook
来创建.xlsx
格式的Excel文件。如果你需要创建.xls
格式的文件,可以使用HSSFWorkbook
。源码地址:ProgrammingArsenal · bsea/ProgrammingArsenal - 码云 - 开源中国 (gitee.com)