所有文章 > 日积月累 > JSON对象转成表格的详细指南
JSON对象转成表格的详细指南

JSON对象转成表格的详细指南

使用Excel将JSON数据转换为表格

在程序员的日常工作中,经常会遇到需要将JSON格式的数据转换为Excel文档的需求。这通常是因为其他部门的人,如产品或运营团队的成员,需要这些数据进行进一步分析。为了满足这一需求,Excel自身提供了一些简单而强大的工具,可以让我们快速实现这一转换过程。

  1. 打开Excel文件:首先,启动Excel应用程序并打开一个新的工作簿。Excel加载项

  2. 插入加载项:点击菜单中的“插入”选项,然后选择“获取加载项”。在应用商店中搜索“JSON”,找到合适的插件后点击添加。应用商店

  3. 使用加载项:完成加载项的安装后,在Excel的表头中可以看到JSON插件。通过这个插件,可以将输入的JSON数据自动转换为Excel文件格式。JSON插件

  4. 导入数据:在插件界面中输入或导入JSON数据,此插件会自动解析并生成对应的Excel表格。导入数据

Java将JSON文件转换为Excel表格

1、项目依赖

要在Java中将JSON文件转换为Excel表格,首先需要引入相关的库,主要包括fastjson和apache poi库。这些库提供了处理JSON数据和生成Excel文件的能力。


  com.alibaba
  fastjson
  2.0.12


  org.apache.poi
  poi
  3.14


  org.apache.poi
  poi-ooxml
  3.14

2、核心类和方法

2.1、创建Excel表及表单

在Java中,使用HSSFWorkbook类可以创建Excel文件,而HSSFSheet用于创建表单。

// 创建Excel文件
HSSFWorkbook wb = new HSSFWorkbook();
// 创建Excel表单,表单名为sheet
HSSFSheet sheet = wb.createSheet("sheet");

2.2、创建行和列

通过HSSFRow和HSSFCell类,可以分别创建行和列,并设置列的值。

// 创建行
HSSFRow row= sheet.createRow(rowNum);
// 创建改行的列
HSSFCell cell = row.createCell(colNum);
// 给列设置值
cell.setCellValue("value");

3、完整示例

以下是一个完整的Java示例代码,它展示了如何将JSON文件转换为Excel文件。

public class DataConverge {
    public static void main(String[] args) throws IOException {
        File file = new File("C:\zsh\projectInSchool\traffic\result");
        File[] files = file.listFiles();
        int rowNum = 0; // excel行号
        HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sheet = wb.createSheet("sheet");
        HSSFRow rowTtile = sheet.createRow(rowNum++);
        rowTtile.createCell(0).setCellValue("日期");
        rowTtile.createCell(1).setCellValue("区域名称");
        rowTtile.createCell(2).setCellValue("交通指数");
        rowTtile.createCell(3).setCellValue("拥堵等级");
        rowTtile.createCell(4).setCellValue("平均速度");

        String preDate = "";

        for (File f : files) {
            String dateTimeStamp = f.getName().split("\.")[0];
            String date = new SimpleDateFormat("yyyy-MM-dd").format(Long.parseLong(dateTimeStamp));

            FileInputStream fis  = new FileInputStream(f);
            InputStreamReader isr = new InputStreamReader(fis,"UTF-8");
            BufferedReader reader = new BufferedReader(isr);
            StringBuilder sb = new StringBuilder();
            int ch = 0;
            while ((ch = reader.read()) != -1) {
                sb.append((char) ch);
            }
            reader.close();

            JSONObject jsonObject = JSONObject.parseObject(sb.toString());

            if(preDate.equals(jsonObject.get("time"))) {
                continue;
            }
            preDate = jsonObject.get("time").toString();

            JSONArray items = jsonObject.getJSONArray("items");
            for (Object item : items) {
                JSONObject itemJson = (JSONObject) item;
                HSSFRow rowContent = sheet.createRow(rowNum++);
                rowContent.createCell(0).setCellValue(date+ " " +jsonObject.get("time"));
                rowContent.createCell(1).setCellValue(itemJson.getString("place"));
                rowContent.createCell(2).setCellValue(itemJson.getString("indicator"));
                rowContent.createCell(3).setCellValue(itemJson.getString("level"));
                rowContent.createCell(4).setCellValue(itemJson.getString("speed"));
            }

            FileOutputStream outputStream = new FileOutputStream("C:\zsh\projectInSchool\traffic\result.xls");
            wb.write(outputStream);
            fis.close();
            isr.close();
            outputStream.close();
        }
        wb.close();
        System.out.println("文件转换成功");
    }
}

使用JavaScript将JSON转为Excel

1. 下载xlsx库

在JavaScript中使用xlsx库来实现JSON到Excel的转换。首先需要通过npm下载该库。

npm install xlsx

2. 引入xlsx库

在你的.js文件中引入xlsx库。

let XLSX = require('xlsx');

3. 准备JSON数据

JSON数据可以是数组或对象格式。

let jsonData=[
  { "name": "张三", "age": 25, "gender": "男" },
];

// 或者

let jsonData = {
  "name": "张三",
  "age": 25,
  "gender": "男"
};

4. 创建工作簿和工作表

使用xlsx库的utils对象中的方法来创建工作簿和工作表。

let worksheet = XLSX.utils.json_to_sheet(jsonData);

5. 添加工作表到工作簿

将创建的工作表添加到工作簿中。

XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');

6. 保存为Excel文件

使用xlsx库的writeFile方法将工作簿保存为Excel文件。

XLSX.writeFile(workbook, 'data.xlsx');

完整代码

以下是完整的JavaScript代码示例:

const XLSX = require('xlsx');
// 准备 JSON 数据
const jsonData = [
  { "name": "张三", "age": 25, "gender": "男" }
];
// 创建工作簿
const workbook = XLSX.utils.book_new();
// 创建工作表
const worksheet = XLSX.utils.json_to_sheet(jsonData);
// 将工作表添加到工作簿中
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 导出 Excel 文件
XLSX.writeFile(workbook, 'data.xlsx');

FAQ

1. JSON格式与Excel格式的主要区别是什么?

Excel是一种电子表格应用程序,通常用于组织和分析数据,而JSON是一种轻量级的数据交换格式,常用于数据传输。JSON使用键值对表示数据,而Excel则使用单元格和表格的形式。

2. 为什么需要将JSON转换为Excel文件?

将JSON数据转换为Excel格式可以方便地进行数据分析、可视化以及与其他部门的沟通。Excel的表格格式更易于阅读和处理,特别是当需要进行数据排序、过滤和计算时。

3. 如何处理JSON数据中的嵌套对象?

在将嵌套的JSON对象转换为Excel时,可以通过展开嵌套对象的方式,将其转换为多个列。使用JavaScript或Java中的库时,可以编写递归函数来遍历嵌套对象,并将其转换为平面数据结构。

4. 是否有其他工具可以将JSON转换为Excel?

除了使用程序代码转换外,还有许多在线工具和软件可以实现JSON到Excel的转换。这些工具通常提供简单的界面,用户只需上传JSON文件即可获得Excel文档。

5. 如何确保转换后的Excel数据的准确性?

在转换过程中,需要确保JSON数据的结构和内容正确。可以通过对比转换前后的数据,检查是否有丢失或错误。使用库时,关注其文档和示例代码,避免使用不支持的数据类型。

#你可能也喜欢这些API文章!