基于Java实现Json文件转换为Excel文件的攻略:
- 引入相关依赖
在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>
- 编写转换逻辑
- 读取Json文件数据,使用fastjson库将Json数据转换为Java对象。
- 创建Excel工作簿和工作表,并设置表头信息。
- 遍历Java对象集合,将数据写入Excel中。
- 将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技术站