1. 程式人生 > 其它 >java-下載excel 資料庫資料對映到excel(類似查表展示)

java-下載excel 資料庫資料對映到excel(類似查表展示)

package com.cck.common.Utils;

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 javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

/**
* @program: Iplan_NkaRka_server
* @description: DownExcel
* @author: LiuZhiFeng
* @create: 2021-07-30 10:31
**/
public class RowDataExcelUtil {

public static void writeRowExcel(List<LinkedHashMap> list,
HttpServletResponse response,
String channelType) throws IOException {

XSSFWorkbook xssfWorkbook = null;
xssfWorkbook = new XSSFWorkbook();

//建立工作表
XSSFSheet xssfSheet;
xssfSheet = xssfWorkbook.createSheet();
//建立行
XSSFRow xssfRow;
//建立列,即單元格Cell
XSSFCell xssfCell;

xssfRow = xssfSheet.createRow(0);
Map map = list.get(0);
Iterator iterator = map.entrySet().iterator();
int j=0;
while (iterator.hasNext()) {
Entry next = (Entry) iterator.next();
xssfCell = xssfRow.createCell(j);
xssfCell.setCellValue(next.getKey().toString());
j++;
}
int k =0;
for (int i = 0; i < list.size(); i++) {
Map map1 = list.get(i);
xssfRow = xssfSheet.createRow(i + 1);
for(Object obj:map1.values()){
System.out.println("value:"+obj);
xssfCell = xssfRow.createCell(k);
xssfCell.setCellValue(String.valueOf(obj));
k++;
}
k=0;
}

String headStr = "attachment; filename=\"" +channelType+ "-RowData.xlsx\"";
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", headStr);//
OutputStream outl = response.getOutputStream();
//FileOutputStream outl=new FileOutputStream("D://"+fileName);
//用輸出流寫到excel
try {
xssfWorkbook.write(outl);
outl.flush();
}catch (IOException e) {
e.printStackTrace();
}finally {
outl.close();
}

}

}