基于Java实现Json文件转换为Excel文件

基于Java实现Json文件转换为Excel文件的攻略:

  1. 引入相关依赖
    在pom.xml文件中添加以下依赖:
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.78</version>
</dependency>
  1. 编写转换逻辑
  2. 读取Json文件数据,使用fastjson库将Json数据转换为Java对象。
  3. 创建Excel工作簿和工作表,并设置表头信息。
  4. 遍历Java对象集合,将数据写入Excel中。
  5. 将Excel写入输出流并写入文件。

示例1:将Json文件中的数据转换为Excel文件并保存在本地。

假设Json文件内容为:

[
  {
    "name": "Alice",
    "age": 20,
    "gender": "female"
  },
  {
    "name": "Bob",
    "age": 25,
    "gender": "male"
  }
]

Java代码如下:

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;

public class JsonToExcelConverter {

    public static void main(String[] args) throws IOException {
        // 读取Json文件内容到字符串中
        String jsonStr = Files.readString(Paths.get("data.json"), StandardCharsets.UTF_8);
        // 将Json字符串转换为Java对象集合
        JSONArray jsonArray = JSONArray.parseArray(jsonStr);

        // 创建Excel工作簿和工作表
        XSSFWorkbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet();
        int rowIndex = 0;
        // 设置表头信息
        Row header = sheet.createRow(rowIndex++);
        header.createCell(0).setCellValue("姓名");
        header.createCell(1).setCellValue("年龄");
        header.createCell(2).setCellValue("性别");

        // 遍历Json对象集合,将数据写入Excel中
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            Row row = sheet.createRow(rowIndex++);
            Cell cell0 = row.createCell(0);
            cell0.setCellValue(jsonObject.getString("name"));
            Cell cell1 = row.createCell(1);
            cell1.setCellValue(jsonObject.getIntValue("age"));
            Cell cell2 = row.createCell(2);
            cell2.setCellValue(jsonObject.getString("gender"));
        }

        // 将Excel写入输出流并写入文件
        try (FileOutputStream outputStream = new FileOutputStream("data.xlsx")) {
            workbook.write(outputStream);
        }
    }
}

示例2:将从API接口获取的Json数据转换为Excel文件并保存在本地。

假设API接口地址为:http://example.com/data

Java代码如下:

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class JsonToExcelConverter {

    public static void main(String[] args) throws IOException {
        // 从API接口获取Json数据
        URL url = new URL("http://example.com/data");
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");
        connection.connect();
        InputStream inputStream = connection.getInputStream();
        byte[] data = inputStream.readAllBytes();
        String jsonStr = new String(data);
        // 将Json字符串转换为Java对象集合
        JSONArray jsonArray = JSONArray.parseArray(jsonStr);

        // 创建Excel工作簿和工作表
        XSSFWorkbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet();
        int rowIndex = 0;
        // 设置表头信息
        Row header = sheet.createRow(rowIndex++);
        header.createCell(0).setCellValue("姓名");
        header.createCell(1).setCellValue("年龄");
        header.createCell(2).setCellValue("性别");

        // 遍历Json对象集合,将数据写入Excel中
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            Row row = sheet.createRow(rowIndex++);
            Cell cell0 = row.createCell(0);
            cell0.setCellValue(jsonObject.getString("name"));
            Cell cell1 = row.createCell(1);
            cell1.setCellValue(jsonObject.getIntValue("age"));
            Cell cell2 = row.createCell(2);
            cell2.setCellValue(jsonObject.getString("gender"));
        }

        // 将Excel写入输出流并写入文件
        try (FileOutputStream outputStream = new FileOutputStream("data.xlsx")) {
            workbook.write(outputStream);
        }
    }
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于Java实现Json文件转换为Excel文件 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言实现酒店客房管理系统课程设计

    C语言实现酒店客房管理系统课程设计攻略 1. 确定项目需求 在开始设计酒店客房管理系统之前,需要明确项目需求,明确系统需要实现哪些功能以及对应的数据结构和算法等。通常,酒店客房管理系统需要实现以下功能: 客房预定:记录客人预定信息,包括客人信息、入住时间、预计离开时间等; 房态管理:查看客房状态、入住情况、空闲房间等; 房价管理:设置客房价格、优惠政策、房间…

    C 2023年5月23日
    00
  • C语言中qsort函数的介绍与用法实例

    C语言中qsort函数的介绍与用法实例 什么是qsort函数? 在C语言中,qsort函数是用于对数组进行排序的函数。它被定义在stdlib.h中,具有如下形式: void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)); 其中参数…

    C 2023年5月23日
    00
  • C语言实现3个数从小到大排序/输出的方法示例

    C语言实现3个数从小到大排序/输出的方法示例 问题描述 C语言中如何实现3个数从小到大排序/输出? 解决方案 #include <stdio.h> int main() { int a, b, c; printf("请输入三个整数:\n"); scanf("%d%d%d", &a, &b, …

    C 2023年5月30日
    00
  • C语言简明讲解操作符++和–的使用方法

    C语言简明讲解操作符++和–的使用方法 操作符++和–的基本概念 操作符++和–是C语言中的两种自增、自减操作符。它们作用于一个变量,可以将该变量的值自增1或自减1。 操作符++:将变量的值自增1,等同于var = var + 1。 操作符–:将变量的值自减1,等同于var = var – 1。 这两个操作符都可以在变量前面或后面使用,从而分别产生前…

    C 2023年5月23日
    00
  • C语言实现弹跳小球

    C语言实现弹跳小球 1. 实现思路 本例中的弹跳小球,实质上就是一个在窗口中移动的小球,它有自己的坐标和移动方向,同时也有一定的大小和颜色。而在运动期间它还需要遇到窗口边界时进行反弹的操作,也就是改变移动方向。 基于此,我们可以考虑使用C语言结构体来存储小球的位置、大小、颜色和移动方向等信息,同时利用窗口显示库如SDL或Qt来实现小球在窗口中的运动和反弹效果…

    C 2023年5月23日
    00
  • IE浏览器打开异常0xco6d007f位置0x7c812fd3的解决办法

    IE浏览器打开异常0xco6d007f位置0x7c812fd3的解决办法 问题描述 在使用IE浏览器打开某些网站或者本地文件时,会出现以下错误提示:“应用程序无法正常启动,错误0xco6d007f,在应用程序的配置文件中出错,位置0x7c812fd3”。这种情况可能发生在不同的IE版本中,导致无法正常使用浏览器。 解决方案 以下是多种可能的解决方案,可以尝试…

    C 2023年5月23日
    00
  • Javascript对象属性方法汇总

    Javascript对象属性方法汇总 在Javascript中,对象是一种基本数据类型,它可以用来存储数据和方法。一个对象可以包含多个属性和方法,属性是对象的状态,方法是对象的行为。本文将总结Javascript中常见的对象属性和方法。 对象属性 对象属性描述对象的状态,包括数据属性和访问器属性两种。 数据属性 数据属性描述对象的简单值,包含以下属性: va…

    C 2023年5月22日
    00
  • 用C++实现队列的程序代码

    实现队列的程序代码主要涉及以下内容:数据结构、队列的操作、C++语法等。下面我们一步步来进行讲解。 数据结构 队列可以看成是一种特殊的线性表,它具有先进先出(FIFO)的特点,即先进队列的元素将先输出,后进队列的元素将后输出。 队列通常包含以下几个基本操作:入队、出队、判空和求队列长度等。入队就是将新元素插入到队列的末尾,出队就是将队头元素删除并返回,判空就…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部