实现 json 转 excel的Java 代码实现示例
时间: 2024-10-12 11:17:00 浏览: 9
在Java中,可以使用Apache POI库来将JSON数据转换为Excel文件。以下是一个简单的示例,假设我们有一个包含员工信息的JSON数组:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.util.List;
public class JsonToExcel {
public static void main(String[] args) throws Exception {
// JSON字符串
String jsonString = "[{" +
" \"id\": 1," +
" \"name\": \"John Smith\"," +
" \"department\": \"Sales\"," +
" \"salary\": 5000" +
"}, {" +
" \"id\": 2," +
" \"name\": \"Jane Doe\"," +
" \"department\": \"Marketing\"," +
" \"salary\": 6000" +
"}]";
// 将JSON转换为Java对象列表
ObjectMapper mapper = new ObjectMapper();
List<Employee> employees = mapper.readValue(jsonString, new TypeReference<List<Employee>>() {});
// 创建一个新的Excel工作簿
Workbook workbook = new XSSFWorkbook();
// 获取第一个工作表
Sheet sheet = workbook.createSheet("Employees");
// 定义列标题
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("ID");
headerRow.createCell(1).setCellValue("Name");
headerRow.createCell(2).setCellValue("Department");
headerRow.createCell(3).setCellValue("Salary");
// 写入数据
int rowNum = 1;
for (Employee employee : employees) {
Row dataRow = sheet.createRow(rowNum++);
dataRow.createCell(0).setCellValue(employee.getId());
dataRow.createCell(1).setCellValue(employee.getName());
dataRow.createCell(2).setCellValue(employee.getDepartment());
dataRow.createCell(3).setCellValue(employee.getSalary());
}
// 保存到文件
try (FileOutputStream outputStream = new FileOutputStream("employees.xlsx")) {
workbook.write(outputStream);
System.out.println("Excel file created successfully.");
}
}
static class Employee {
private int id;
private String name;
private String department;
private double salary;
// getters and setters...
}
}
阅读全文