Java讀取json文件並輸出到excel

假設D:/test.txt文件中保存的是json格式的數據,解析後使用poi寫入到excel文件中

package vo;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class Spider {
	
	public static void main(String[] args) {
		spider();
	}
    
    public static void spider() {
        StringBuilder sb = new StringBuilder();
        try {
            FileReader in = new FileReader(new File("D:/test.txt"));
            BufferedReader inBR = new BufferedReader(in);
            String stext = null;
            while ((stext = inBR.readLine()) != null) {
                sb.append(stext);
            }
            inBR.close();
        } catch (Exception e) {
            e.printStackTrace();
        }

		try {
			String uploadFile = "D:/test.xlsx";
			OutputStream fos = new FileOutputStream(uploadFile);
			XSSFWorkbook workBook = new XSSFWorkbook();
			XSSFSheet sheet = workBook.createSheet();
			
			XSSFRow row = null;
			XSSFCell cell = null;
			
			row = sheet.createRow(0);
			String[] names = {"序號", "活動名稱", "活動地點", "活動時間", "鏈接"};
			for (int index = 0; index < 5; index++) {
				cell = row.createCell(index);
				cell.setCellValue(names[index]);
			}
			int count = 1;
			
			JSONObject obj = JSONObject.fromObject(sb.toString());
			JSONArray jsonArray = obj.getJSONObject("Data").getJSONArray("List");
			for (Object object : jsonArray) {
				JSONObject item = (JSONObject) object;
				String link = "http://www.test.com/" + item.getString("Id");
				String Name = item.getString("Name");
				String Addr = item.getString("Addr");
				String StartDate = item.getString("StartDate");
				
				row = sheet.createRow(count);
				cell = row.createCell(0);
				cell.setCellValue(count);
				cell = row.createCell(1);
				cell.setCellValue(Name);
				cell = row.createCell(2);
				cell.setCellValue(Addr);
				cell = row.createCell(3);
				cell.setCellValue(StartDate);
				cell = row.createCell(4);
				cell.setCellValue(link);
				count++;
			}
			workBook.write(fos);
		} catch (Exception e) {
			e.printStackTrace();
		}
    }

}

本文內容到此結束。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章