Java将Json文件并转换成Excel表格
1、依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.12</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
2、核心类、方法
2.1、创建Excel表及表单
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("sheet");
2.2、创建行和列
HSSFRow row= sheet.createRow("rowNum");
HSSFCell cell = row.createCell("colNum");
cell.setCellValue("value");
3、示例
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;
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("文件转换成功");
}
}