色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

easyexcel導(dǎo)出都是json數(shù)據(jù)

錢多多1年前9瀏覽0評論

在web應(yīng)用開發(fā)中,我們常常需要將數(shù)據(jù)庫數(shù)據(jù)進(jìn)行導(dǎo)出,而EasyExcel就是一款非常好用的Java開源庫,它可以幫助我們將數(shù)據(jù)導(dǎo)出為Excel文件。而對于一些前后端分離的應(yīng)用,前端需要導(dǎo)出的數(shù)據(jù)一般都是JSON格式的,這時我們該如何使用EasyExcel進(jìn)行導(dǎo)出呢?

首先我們需要明確一點:EasyExcel并不僅只能從數(shù)據(jù)庫中讀取數(shù)據(jù),它同樣可以讀取Java中的集合類型。因此,我們可以在后端將數(shù)據(jù)庫中讀取到的數(shù)據(jù)轉(zhuǎn)換為對應(yīng)的JSON格式,然后將其讀取到Java中的List中,最后再使用EasyExcel進(jìn)行導(dǎo)出。

List<JSONObject> datas = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
JSONObject obj = new JSONObject();
obj.put("id", list.get(i).getId());
obj.put("name", list.get(i).getName());
obj.put("age", list.get(i).getAge());
datas.add(obj);
}

上面的代碼中,我們使用了阿里巴巴的FastJson對查詢出來的List進(jìn)行了轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)據(jù)被存儲在List<JSONObject>類型的datas變量中。

接下來,我們可以將datas作為數(shù)據(jù)源,使用EasyExcel進(jìn)行導(dǎo)出操作。下面是一個簡單的示例代碼:

// 創(chuàng)建workbook
Workbook workbook = new SXSSFWorkbook();
// 創(chuàng)建sheet
Sheet sheet = workbook.createSheet("導(dǎo)出數(shù)據(jù)");
// 創(chuàng)建header
Row row0 = sheet.createRow(0);
row0.createCell(0).setCellValue("ID");
row0.createCell(1).setCellValue("姓名");
row0.createCell(2).setCellValue("年齡");
// 寫入數(shù)據(jù)
for (int i = 0; i < datas.size(); i++) {
JSONObject obj = datas.get(i);
Row row = sheet.createRow(i + 1);
row.createCell(0).setCellValue(obj.getInteger("id"));
row.createCell(1).setCellValue(obj.getString("name"));
row.createCell(2).setCellValue(obj.getInteger("age"));
}
// 輸出文件
workbook.write(outputStream);
workbook.close();

上面的代碼中,我們首先創(chuàng)建了一個SXSSFWorkbook對象作為導(dǎo)出的文件,然后創(chuàng)建了一個sheet,命名為“導(dǎo)出數(shù)據(jù)”。

接下來,我們創(chuàng)建了表頭行,并設(shè)置了三列的列名。然后,我們開始遍歷datas中的每個JSONObject對象,并將其中的id、name和age屬性寫入到Excel對應(yīng)的單元格中。

最后一步,我們將workbook寫入到response的輸出流中,即可實現(xiàn)在后端將JSON格式數(shù)據(jù)導(dǎo)出為Excel文件的功能。