Excel生成JSON文件的Java代码

在数据交换和处理中,JSON格式因其轻量级和易于阅读的特点,被广泛应用于Web开发和数据交换。有时,我们需要将Excel中的数据转换为JSON格式,以便于后续的数据处理和分析。本文将介绍如何使用Java代码实现Excel到JSON的转换。

准备工作

在开始编码之前,我们需要准备以下工具和库:

  1. Java Development Kit (JDK)
  2. Maven或Gradle(用于依赖管理)
  3. Apache POI库(用于操作Excel文件)
  4. Jackson或Gson库(用于生成JSON)

添加依赖

以Maven为例,我们将在pom.xml文件中添加以下依赖:

<!-- 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>

<!-- Jackson -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.0</version>
</dependency>

读取Excel文件

首先,我们需要读取Excel文件。这里我们使用Apache POI库来实现:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class ExcelToJsonConverter {
    public static List<List<String>> readExcel(String filePath) throws Exception {
        List<List<String>> data = new ArrayList<>();
        try (InputStream inputStream = new FileInputStream(filePath)) {
            Workbook workbook = new XSSFWorkbook(inputStream);
            Sheet sheet = workbook.getSheetAt(0); // 假设只处理第一个工作表

            for (Row row : sheet) {
                List<String> rowData = new ArrayList<>();
                for (Cell cell : row) {
                    rowData.add(getCellValue(cell).toString());
                }
                data.add(rowData);
            }
        }
        return data;
    }

    private static Object getCellValue(Cell cell) {
        switch (cell.getCellType()) {
            case STRING:
                return cell.getStringCellValue();
            case NUMERIC:
                return cell.getNumericCellValue();
            // 可以根据需要添加更多类型
            default:
                return "";
        }
    }
}

转换为JSON

接下来,我们将读取到的数据转换为JSON格式。这里我们使用Jackson库来实现:

import com.fasterxml.jackson.databind.ObjectMapper;

public class ExcelToJsonConverter {
    // ...

    public static void convertToJson(List<List<String>> data, String outputPath) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        String json = mapper.writeValueAsString(data);
        try (FileOutputStream fos = new FileOutputStream(outputPath)) {
            fos.write(json.getBytes());
        }
    }
}

完整示例

将上述代码整合到一个完整的示例中:

public class Main {
    public static void main(String[] args) {
        try {
            String excelFilePath = "path/to/your/excel.xlsx";
            String jsonOutputPath = "path/to/output.json";

            List<List<String>> excelData = ExcelToJsonConverter.readExcel(excelFilePath);
            ExcelToJsonConverter.convertToJson(excelData, jsonOutputPath);
            System.out.println("Excel to JSON conversion completed.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

结果展示

使用上述代码,我们可以将Excel文件中的数据转换为JSON格式,并保存到指定的文件路径。这为我们后续的数据处理和分析提供了便利。

数据可视化

为了更好地展示数据,我们可以使用饼状图来表示数据的分布情况。以下是使用Mermaid语法生成的饼状图示例:

pie
    title 饼状图示例
    "数据1" : 386
    "数据2" : 52
    "数据3" : 150

结语

通过本文的介绍,我们了解到了如何使用Java代码实现Excel到JSON的转换。这不仅提高了数据处理的效率,也为数据的进一步分析和可视化提供了基础。希望本文能够帮助到有需要的朋友。