java把JSONObject列表变成excel,列名取JSONObject的key
时间: 2023-07-11 17:35:46 浏览: 163
如果要将多个JSON对象列表转换为Excel文件,并将每个对象的键用作Excel表头,请使用以下代码:
```java
// 创建Excel文档
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Data");
// 获取JSON数据列表
JSONArray jsonArray = new JSONArray("[{\"name\":\"John\",\"age\":30,\"city\":\"New York\"},{\"name\":\"Mary\",\"age\":25,\"city\":\"San Francisco\"}]");
// 创建表头
Row header = sheet.createRow(0);
int colNum = 0;
JSONObject firstObj = jsonArray.getJSONObject(0);
for (String key : firstObj.keySet()) {
header.createCell(colNum++).setCellValue(key);
}
// 填充数据
int rowNum = 1;
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
Row row = sheet.createRow(rowNum++);
colNum = 0;
for (String key : obj.keySet()) {
row.createCell(colNum++).setCellValue(obj.getString(key));
}
}
// 写入文件
FileOutputStream outputStream = new FileOutputStream("data.xlsx");
workbook.write(outputStream);
workbook.close();
outputStream.close();
```
这将创建一个名为“data.xlsx”的Excel文件,并将多个JSON对象列表的数据写入第一个工作表中。代码中的for循环通过遍历JSON对象的键并将它们用作表头和列名。请注意,这里假设所有JSON对象都具有相同的键,因此我们只需获取列表中的第一个对象以获取键列表。如果不是这种情况,则需要对每个对象执行此操作,以获取所有键并创建唯一的Excel表头。
阅读全文