爪哇一角

          共同探討STRUTS#HIBERNATE#SPRING#EJB等技術
          posts - 3, comments - 6, trackbacks - 0, articles - 99
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          隨筆檔案

          搜索

          •  

          最新評論

        1. /**  
        2.      * 導出  
        3.      * @param mapping  
        4.      * @param form  
        5.      * @param request  
        6.      * @param response  
        7.      * @return  
        8.      */  
        9.     public ActionForward export(ActionMapping mapping, ActionForm form,   
        10.             HttpServletRequest request, HttpServletResponse response) {   
        11.            
        12.         String checkBoxValueList = request.getParameter("ckv");   
        13.         if(!CommonUtil.isNotNullorEmtry(checkBoxValueList)) {   
        14.             this.saveMessages(request, "export.fail");   
        15.             return mapping.findForward("export.fail");   
        16.         }   
        17.         List<Order> listOrder = orderService.exportOrderList(checkBoxValueList);   
        18.            
        19.         try {   
        20. //          SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddhhmm");   
        21. //          Calendar calendar = Calendar.getInstance();   
        22.                
        23.             ServletOutputStream os = response.getOutputStream(); //獲得輸出流   
        24.             response.reset();   //清空輸出流   
        25.             String fileName = new String("訂單列表".getBytes("gb2312"), "ISO8859-1") +".xls";   
        26.             response.setHeader("Content-disposition""attachment; filename="+ fileName); //設定輸出文件頭   
        27.             response.setContentType("application/msexcel"); //定義輸出類型   
        28.   
        29.             String filePath = request.getSession().getServletContext().getRealPath("/excel/model/order.xls");   
        30.   
        31.             HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(filePath));    //讀取excel模板   
        32.             try {   
        33.                 HSSFSheet sheet = workbook.getSheetAt(0);   //讀取第一個工作簿   
        34.                 HSSFRow row;   
        35.                 HSSFCell cell = null;   
        36.                 int rownum = 3//添加的起始行   
        37.                 HSSFCellStyle style = this.getStyle(workbook);   
        38.                 Iterator<Order> it = listOrder.iterator();   
        39.                 Order order = null;   
        40.                                    
        41.                 while(it.hasNext()) {   
        42.                     order = new Order();   
        43.                     order = it.next();   
        44.                        
        45.                     row = sheet.createRow(rownum);   
        46.                        
        47.                     myCreateCell(1, String.valueOf(rownum-2), row, cell, style);    //列1   
        48.                     myCreateCell(2, order.getAdName(), row, cell, style);   //列2   
        49.                     myCreateCell(3, order.getSmallAreaName(), row, cell, style);    //列1       
        50.                                            
        51.                     rownum++;   
        52.                 }   
        53.                                    
        54.                 workbook.write(os);   
        55.                 os.flush();   
        56.                 os.close();   
        57.             } catch (Exception e) {   
        58.                 e.printStackTrace();   
        59.             }   
        60.         } catch (IOException e) {   
        61.             e.printStackTrace();   
        62.         }   
        63.         return null;   
        64.     }   
        65.        
        66.     private void myCreateCell(int cellnum, String value, HSSFRow row, HSSFCell cell, HSSFCellStyle style) {   
        67.         cell = row.createCell((short) cellnum);   
        68.         cell.setCellValue(new HSSFRichTextString(value));   
        69.         cell.setCellStyle(style);   
        70.     }   
        71.        
        72.     public HSSFCellStyle getStyle(HSSFWorkbook workbook) {   
        73.         //設置字體;   
        74.         HSSFFont font = workbook.createFont();   
        75.         //設置字體大小;   
        76.         font.setFontHeightInPoints((short10);   
        77.         //設置字體名字;   
        78.         font.setFontName("宋體");   
        79.         //font.setItalic(true);   
        80.         //font.setStrikeout(true);   
        81.         //設置樣式;   
        82.         HSSFCellStyle style = workbook.createCellStyle();   
        83.         //設置底邊框;   
        84.         style.setBorderBottom(HSSFCellStyle.BORDER_THIN);   
        85.         //設置底邊框顏色;   
        86.         style.setBottomBorderColor(HSSFColor.BLACK.index);   
        87.         //設置左邊框;   
        88.         style.setBorderLeft(HSSFCellStyle.BORDER_THIN);   
        89.         //設置左邊框顏色;   
        90.         style.setLeftBorderColor(HSSFColor.BLACK.index);   
        91.         //設置右邊框;   
        92.         style.setBorderRight(HSSFCellStyle.BORDER_THIN);   
        93.         //設置右邊框顏色;   
        94.         style.setRightBorderColor(HSSFColor.BLACK.index);   
        95.         //設置頂邊框;   
        96.         style.setBorderTop(HSSFCellStyle.BORDER_THIN);   
        97.         //設置頂邊框顏色;   
        98.         style.setTopBorderColor(HSSFColor.BLACK.index);   
        99.         //在樣式用應用設置的字體;   
        100.         style.setFont(font);   
        101.         //設置自動換行;   
        102.         style.setWrapText(false);   
        103.         //設置水平對齊的樣式為居中對齊;   
        104.         style.setAlignment(HSSFCellStyle.ALIGN_CENTER);   
        105.         //設置垂直對齊的樣式為居中對齊;   
        106.         style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);   
        107.         return style;   
        108.     } 

        109. EXCEL模板加載出錯的問題:
          可能是因為模板中某些格式存在問題,或者模板中存在EXCEL的某些高級功能,【POI】無法加載導致出錯。
          解決辦法:自己一步步從最簡單的excel文件開始,繪制模板。

          主站蜘蛛池模板: 祥云县| 汉源县| 承德县| 依兰县| 嘉善县| 淮南市| 九台市| 兰考县| 东阳市| 固始县| 扎囊县| 聂拉木县| 平泉县| 张家口市| 五大连池市| 郧西县| 三明市| 潼关县| 兴城市| 肇州县| 柘荣县| 兰溪市| 马公市| 青川县| 百色市| 丹阳市| 湘西| 盐池县| 昭苏县| 三门县| 贵阳市| 柳林县| 深水埗区| 滕州市| 卢龙县| 湖南省| 太保市| 诸暨市| 沾化县| 阿拉尔市| 中西区|