poi 導出工具類


工具類

package com.banxue.kmsservice.helper;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import rx.internal.util.LinkedArrayList;

import javax.servlet.http.HttpServletResponse;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;

public class ExcelExportHelper {
    public static void writeExcelHeader(HttpServletResponse response,String fileName) throws Exception{
        if(!(fileName.endsWith(".xls") || fileName.endsWith("xlsx"))){
            fileName+=".xlsx";
        }
        response.setHeader("Content-disposition","attachment;filename="+new String(fileName.getBytes("gb2312"),"ISO8859-1"));  //設置文件頭編碼格式

        response.setContentType("APPLICATION/OCTET-STREAM;charset=UTF-8");//設置類型

        response.setHeader("Cache-Control","no-cache");//設置頭

        response.setDateHeader("Expires", 0);//設置日期頭
    }

    public static void writeExcelData(HttpServletResponse response, JSONArray dataAraay, Map<String,String> map, String sheetName) throws Exception{
        XSSFWorkbook book=new XSSFWorkbook();
        XSSFSheet sheet=book.createSheet(sheetName);
        //創建表頭
        Iterator<String> iterator = map.keySet().iterator();
        Row row = sheet.createRow(0);
        int i = 0;
        LinkedList list = new LinkedList();
        while (iterator.hasNext()){
            String key = iterator.next();
            Cell cell = row.createCell(i);
            cell.setCellValue(map.get(key));
            list.add(key);
            i++;
        }
        //寫入數據
        for(int j = 0; j < dataAraay.size(); j++){
            JSONObject jsonObject = JSONObject.fromObject(dataAraay.get(j));
            Row dataRow = sheet.createRow(j+1);
            for(int k = 0; k < list.size(); k++){
                dataRow.createCell(k).setCellValue(String.valueOf(jsonObject.get(list.get(k))));
            }
        }
        book.write(response.getOutputStream());
        response.getOutputStream().flush();
        response.getOutputStream().close();
    }
}

  引用:

     //獲取活動下可以發貨的數據
        List<Map> recordDaos = laXinActivityExchangeRecordMapperUser.selectWaitDeliverByActivityId(activityId);
        //生成excel
        ExcelExportHelper.writeExcelHeader(response,DateHelper.getDateTimeString(new Date(),"yyyy-MM-dd"));
        //設置字段對應的含義值
        Map map = new HashMap();
        map.put("id","id");
        map.put("wx_name","用戶微信名");
        map.put("receive_user","收貨人");
        map.put("receive_phone","收貨電話");
        map.put("receive_address","收貨地址");
        map.put("receive_memo","備注");
        map.put("quantity","申請數量");
        map.put("id","id");
        //寫入數據並下載excel
        ExcelExportHelper.writeExcelData(response,JSONArray.fromObject(recordDaos),map,DateHelper.getDateTimeString(new Date(),"yyyy-MM-dd"));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM