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


    步骤

    1. 添加依赖

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

     
    

    xml复制代码

    com.alibaba
    fastjson
    1.2.78
    org.apache.poi
    poi
    5.0.0
    org.apache.poi
    poi-ooxml
    5.0.0
    1. 解析JSON文件

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

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

    源代码

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

    User.java

     
    

    java复制代码

    1. package com.xsz.programmingarsenal.excel.example;
    2. import lombok.Data;
    3. @Data
    4. public class User {
    5. private String name;
    6. private int age;
    7. // getters and setters
    8. }

    JsonToExcelConverter.java

    1. package com.xsz.programmingarsenal.excel.example;
    2. import com.alibaba.fastjson.JSON;
    3. import com.alibaba.fastjson.JSONArray;
    4. import com.alibaba.fastjson.JSONObject;
    5. import org.apache.poi.ss.usermodel.*;
    6. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    7. import java.io.*;
    8. import java.nio.file.Files;
    9. import java.nio.file.Paths;
    10. import java.util.List;
    11. public class JsonToExcelConverter {
    12. public static void main(String[] args) {
    13. String jsonFilePath = "C:\\Users\\Brad\\Downloads\\wechatpay-java-main (1)\\ProgrammingArsenal\\src\\main\\resources\\data\\file.json";
    14. String excelFilePath = "C:\\Users\\Brad\\Downloads\\wechatpay-java-main (1)\\ProgrammingArsenal\\src\\main\\resources\\data\\file.xlsx";
    15. convertJsonToExcel(jsonFilePath, excelFilePath);
    16. }
    17. public static void convertJsonToExcel(String jsonFilePath, String excelFilePath) {
    18. try {
    19. // 读取JSON文件
    20. String jsonContent = new String(Files.readAllBytes(Paths.get(jsonFilePath)));
    21. JSONArray jsonArray = JSON.parseArray(jsonContent);
    22. // 创建Excel工作簿和工作表
    23. Workbook workbook = new XSSFWorkbook();
    24. Sheet sheet = workbook.createSheet("Users");
    25. // 创建表头
    26. Row headerRow = sheet.createRow(0);
    27. headerRow.createCell(0).setCellValue("Name");
    28. headerRow.createCell(1).setCellValue("Age");
    29. // 填充数据
    30. int rowNum = 1;
    31. for (Object obj : jsonArray) {
    32. JSONObject jsonObject = (JSONObject) obj;
    33. User user = JSON.toJavaObject(jsonObject, User.class);
    34. Row row = sheet.createRow(rowNum++);
    35. row.createCell(0).setCellValue(user.getName());
    36. row.createCell(1).setCellValue(String.valueOf(user.getAge()));
    37. }
    38. // 写入Excel文件
    39. try (FileOutputStream outputStream = new FileOutputStream(excelFilePath)) {
    40. workbook.write(outputStream);
    41. }
    42. System.out.println("Excel file created successfully!");
    43. } catch (IOException e) {
    44. e.printStackTrace();
    45. }
    46. }
    47. }


    注意事项

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

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

  • 相关阅读:
    【图像分割】基于和声搜索算法实现图像多级阈值分割附matlab代码
    而今迈步从头越|nacos逼我在mac上重新安装java8与环境变量的配置
    【老生谈算法】matlab实现DEA交叉评价源码——DEA算法
    jenkins 发布job切换不同的jdk版本/ maven版本
    Python文件操作
    24. [Python GUI] PyQt5中拖放的基本原理
    2019年数维杯数学建模B题火灾等级评价与快速救援措施优化求解全过程文档及程序
    网络攻击的常见形式
    在uni-app中,input组件的auto-focus和focus属性用于控制输入框的自动聚焦行为,它们之间的区别
    什么是透明背景格式logo?Logo白底变透明工具测评
  • 原文地址:https://blog.csdn.net/h356363/article/details/138092018