Excel導出

//form表單請求
		var url="<%=path%>/xxxx/export.action?groupId="+groupId+"&aaa="+aaa;
		$("#exportForm").attr("action",url);
	
		$("#exportForm").submit();
public String export()
	{	
		HttpServletResponse response = null;

        OutputStream out = null;

        try
        {
            
            response = ServletActionContext.getResponse();

            out = response.getOutputStream();

            response.setHeader("Content-disposition", "attachment; filename=" + "export.xls");

            response.setContentType("application/msexcel;charset=UTF-8");// 設置類型

            response.setHeader("Pragma", "No-cache");// 設置頭

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

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

            String groupId = getRequest().getParameter("groupId");

            String aaa = getRequest().getParameter("aaa");
			//處理中文亂碼
            aaa = new String(aaa.getBytes("ISO8859-1"), "UTF-8");

            // 設置表頭
            String[] tableHeader = { "表頭1", "表頭2"};

            short cellNumber = (short) tableHeader.length;// 表的列數

            HSSFWorkbook workbook = new HSSFWorkbook(); // 創建一個excel

            HSSFCell cell = null; // Excel的列

            HSSFRow row = null; // Excel的行

            HSSFSheet sheet = workbook.createSheet("sheet1"); // 創建一個sheet

            HSSFHeader header = sheet.getHeader();// 設置sheet的頭

            header.setCenter("表");

            row = sheet.createRow(0);

            row.setHeight((short) 400);

            for (int k = 0; k < cellNumber; k++)
            {
                cell = row.createCell(k);// 創建第0行第k列

                sheet.setColumnWidth(k, 4000);// 設置列的寬度

                cell.setCellValue(tableHeader[k]);// 設置第0行第k列的值

            }
            //獲取數據源
            List<xxx> actList = xxxService.getPageList();

            int i = 0;

            for (xxxx p : actList)
            {
                row = sheet.createRow((short) (i + 1));// 創建第i+1行

                cell = row.createCell(0);// 創建第i+1行第0列
                cell.setCellValue("值1");// 設置第i+1行第0列的值

                cell = row.createCell(1);
                cell.setCellValue("值2");

                ++i;
            }
            workbook.write(out);
            out.flush();
            workbook.write(out);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                if (out != null)
                {
                    out.close();
                }
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
        return null;
	}


發佈了39 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章