java中poi進行execl匯出,javapoiexecl匯出

來源:互聯網
上載者:User

java中poi進行execl匯出,javapoiexecl匯出

首先貼出最終匯出的execl吧:

前台介面如下:

點擊匯出時,為其按鈕的onclick事件添加exportDate()函數:

function exportDate(){            var begin_Date=$('#dateid').datebox('getValue');            document.getElementById("exportForm").action="../mobileManage/export.do?begin_Date="+begin_Date;            document.getElementById("exportForm").submit();        }

在後台export.do的代碼如下:

@RequestMapping("export.do")    public void exportExecl(HttpServletRequest request,            HttpServletResponse response) {        String beginDate = request.getParameter("dateid")+"-01";        int maxDay=getCurrMonthDays(beginDate);        List<MobileManage> list = getDataList(beginDate);        String title =beginDate.substring(0, 4)+"年"+beginDate.subSequence(5, 7)+"月"+ "員工工作詳情表";        String[] headers1 = new String[33];// 表頭1數組   日期,1,2,3...        String[] headers2 = new String[31];// 表頭2數組      星期,一二三...        headers1[0]="類型";        headers1[1]="姓名";        for (int i = 1; i <=maxDay; i++) {            String date=beginDate.substring(0,8)+(i<10?"0"+i:i+"");            String week=getWeek(date);            headers1[i+1]=i+"";            headers2[i-1]=week;        }        HSSFWorkbook workbook = new HSSFWorkbook();// 產生一個活頁簿        HSSFSheet sheet = workbook.createSheet(title);//建立一個表        HSSFCellStyle style = workbook.createCellStyle();//建立一個置中格式        style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平        style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);// 垂直         sheet.setDefaultColumnWidth(5);//設定預設列寬        sheet.setColumnWidth(0, 10* 256);//設定第一、第二列列寬        sheet.setColumnWidth(1, 10 * 256);        sheet.setDefaultRowHeight((short)300);//設定預設行高        HSSFRow row = sheet.createRow(0);//建立表頭一        sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));  //設定跨行        sheet.addMergedRegion(new CellRangeAddress(0, 1, 1, 1));          HSSFRow rowWeek=sheet.createRow(1);//建立表頭二        HSSFCell cell = null;        //給表頭填充資料        for (int i = 0; i < headers1.length; i++) {            cell = row.createCell(i);            cell.setCellValue(headers1[i]);            cell.setCellStyle(style);        }        for (int i = 0; i < headers2.length; i++) {            cell=rowWeek.createCell(i+2);            cell.setCellValue(headers2[i]);            cell.setCellStyle(style);        }        // 遍曆集合資料,產生資料行        MobileManage manage = null;        int index = 1;        // 迴圈寫入行        for (int i = 0; i < list.size(); i++) {            index++;            row = sheet.createRow(index);//從第二行開始填充資料(第零和一行是表頭)            manage = list.get(i);            cell = row.createCell(0);// 類型            cell.setCellValue(manage.getType());            cell = row.createCell(1);//姓名            cell.setCellValue(manage.getName());            for (int j = 0; j < headers2.length; j++) {//項目編碼                cell=row.createCell(j+2);                cell.setCellValue(manage.getDateCodes()[j]==null?"":manage.getDateCodes()[j].getCode());            }        }        response.reset();        try {            title=new String(title.getBytes("gb2312"),"iso8859-1");//設定表格名時中文亂碼,進行轉碼        } catch (UnsupportedEncodingException e1) {            // TODO Auto-generated catch block            e1.printStackTrace();        }        response.setContentType("application/vnd.ms-excel;charset=utf-8");        response.setHeader("Content-Disposition", "attachment;filename="                + title + ".xls");        try {            OutputStream outputStream = response.getOutputStream();            workbook.write(outputStream);            outputStream.flush();            outputStream.close();        } catch (IOException e) {            e.printStackTrace();        }        return;    }

我在網上看到很多人說這裡面涉及到設定的一般都要加個short強轉,但是我這樣寫在FirefoxGoogle匯出並沒有什麼問題,當然也許不同瀏覽器等或許會出現問題,以後要是遇到了再說吧.

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.