国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用POI導(dǎo)出Excel例子與常見問題

linkFly / 2022人閱讀

代碼
function toExcel(){
    $("#formExcel").submit();
}
@RequestMapping(value="/toExcel",method=RequestMethod.POST)
    public String toExcel(HttpServletResponse response, String fileName, String tableName, String type, String where){
        if (StringUtils.isNotEmpty(fileName) && StringUtils.isNotEmpty(tableName) && StringUtils.isNotEmpty(type)) {
            inteQueryService.toExcel(response,fileName,tableName,type,where);
            return null;
        }
        return null;
    }
public static void toExcel(HttpServletResponse response,List> lists,String name,String[] strArr){
        List[] totals = splitList(lists,65000);

        // 創(chuàng)建工作簿
        HSSFWorkbook wb = new HSSFWorkbook();
        // 由工作簿創(chuàng)建工作表
        for (int j = 0; j < totals.length; j++) {

            HSSFSheet sheet = wb.createSheet("sheet"+(j+1));
            // 在工作表中創(chuàng)建行
            HSSFRow row = sheet.createRow(0);
            // 創(chuàng)建單元格,設(shè)置每個單元格的字段名
            HSSFCell cell = null;
            for (int i = 0; i < strArr.length; i++) {
                cell = row.createCell(i);
                cell.setCellValue(strArr[i]);
            }

            List> list = totals[j];
            for (int i = 0; i < list.size(); i++) {
                Iterator iter = list.get(i).entrySet().iterator();
                row = sheet.createRow(i+1);
                cell = row.createCell(0);
                cell.setCellValue(i+1);
                int index = 1;
                while (iter.hasNext()) {
                    Map.Entry entry = (Map.Entry) iter.next();
                    //Object key = entry.getKey();
                    Object val = entry.getValue();
                    cell = row.createCell(index);
                    cell.setCellValue(val.toString());
                    index++;
                }
            }
        }

        ServletOutputStream sos = null;

        try {
            String fileName = name+".xls";

            response.setContentType("application/vnk.ms-excel");
            response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
            response.setContentType("application/msexcel;charset=utf-8");
            response.resetBuffer();

            sos = response.getOutputStream();
            wb.write(sos);
            sos.flush();

        } catch (IOException e) {
            logger.error("導(dǎo)出excel工具類報錯",e);
        } finally {
            try {
                sos.close();
            } catch (IOException e) {
                logger.error("導(dǎo)出excel工具類報錯",e);
            }
        }
    }
public static List[] splitList(List list, Integer pageSize) {
        if(pageSize == null){
            pageSize = 300;
        }
        int total = list.size();
        //總頁數(shù)
        int pageCount = total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
        List[] result = new List[pageCount];
        for(int i = 0; i < pageCount; i++) {
            int start = i * pageSize;
            //最后一條可能超出總數(shù)
            int end = start + pageSize > total ? total : start + pageSize;
            List subList = list.subList(start, end);
            result[i] = subList;
        }
        return result;
    }
常見問題

前臺一定要使用表單的方式進行提交,ajax是不行的,因為ajax只能接受 xml、 json、html等類似字符串的返回,不能接受流作為返回值。否則程序不報錯,就是不彈下載框。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/66409.html

相關(guān)文章

  • 使用ApachePOI生成XLSX格式Excel文檔大數(shù)據(jù)量導(dǎo)出

    摘要:最近在做使用進行大數(shù)據(jù)量導(dǎo)出,現(xiàn)在把其整理成工具類供大家參考。版本增加了前綴為相關(guān)的類,主要用于大數(shù)據(jù)量的寫入與讀取。 最近在做使用POI進行大數(shù)據(jù)量導(dǎo)出,現(xiàn)在把其整理成工具類供大家參考。Apache POI 3.8版本增加了前綴為SXSSF相關(guān)的類,主要用于大數(shù)據(jù)量的寫入與讀取。關(guān)于ApachePOI導(dǎo)出Excel基本的使用我這里就不詳解了,具體參考: Apache POI官方網(wǎng)站...

    Shihira 評論0 收藏0
  • java 導(dǎo)出 excel 最佳實踐,java 大文件 excel 避免OOM(內(nèi)存溢出) exce

    摘要:消費之后,多線程處理文件導(dǎo)出,生成文件后上傳到等文件服務(wù)器。前端直接查詢并且展現(xiàn)對應(yīng)的任務(wù)執(zhí)行列表,去等文件服務(wù)器下載文件即可。這客戶體驗不友好,而且網(wǎng)絡(luò)傳輸,系統(tǒng)占用多種問題。拓展閱讀導(dǎo)出最佳實踐框架 產(chǎn)品需求 產(chǎn)品經(jīng)理需要導(dǎo)出一個頁面的所有的信息到 EXCEL 文件。 需求分析 對于 excel 導(dǎo)出,是一個很常見的需求。 最常見的解決方案就是使用 poi 直接同步導(dǎo)出一個 exc...

    K_B_Z 評論0 收藏0
  • Excel大批量數(shù)據(jù)的導(dǎo)入和導(dǎo)出,如何做優(yōu)化?

    摘要:并且在對的抽象中,每一行,每一個單元格都是一個對象。對支持使用官方例子需要繼承,覆蓋方法,每讀取到一個單元格的數(shù)據(jù)則會回調(diào)次方法。概要Java對Excel的操作一般都是用POI,但是數(shù)據(jù)量大的話可能會導(dǎo)致頻繁的FGC或OOM,這篇文章跟大家說下如果避免踩POI的坑,以及分別對于xls和xlsx文件怎么優(yōu)化大批量數(shù)據(jù)的導(dǎo)入和導(dǎo)出。一次線上問題這是一次線上的問題,因為一個大數(shù)據(jù)量的Excel導(dǎo)出...

    Tecode 評論0 收藏0
  • POI如何高效導(dǎo)出百萬級Excel數(shù)據(jù)?

    摘要:閱讀原文如何高效導(dǎo)出百萬級數(shù)據(jù)在一個具有統(tǒng)計功能的系統(tǒng)中,導(dǎo)出功能幾乎是一定的,如何導(dǎo)出導(dǎo)出的數(shù)據(jù)有多少如何高效的導(dǎo)出簡介什么是就不用介紹了,這里主要說明不同版本下每個下的行列限制。 閱讀原文:POI如何高效導(dǎo)出百萬級Excel數(shù)據(jù)? 在一個具有統(tǒng)計功能的系統(tǒng)中,導(dǎo)出excel功能幾乎是一定的,如何導(dǎo)出excel?導(dǎo)出的數(shù)據(jù)有多少?如何高效的導(dǎo)出? Excel簡介什么是excel就不用...

    lemanli 評論0 收藏0
  • poi導(dǎo)出excel

    摘要:積分消費明細對賬單其中,有四個參數(shù),分別是,,,。導(dǎo)出讀取數(shù)據(jù)庫的信息,轉(zhuǎn)成。 public void detailExport() { String sourceSystem = getPara(source_system); String dataDate = getPara(data_date); Integer pointsType = get...

    RayKr 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<