Sunspl

          Hello,everyone,i am sun. 天道酬勤,笨鳥先飛.
          隨筆 - 47, 文章 - 0, 評論 - 24, 引用 - 0
          數據加載中……

          POI操作

          package cc.dynasoft.struts.action;

          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.util.Iterator;
          import java.util.List;
          import java.util.Vector;

          import org.apache.poi.hssf.usermodel.HSSFCell;
          import org.apache.poi.hssf.usermodel.HSSFCellStyle;
          import org.apache.poi.hssf.usermodel.HSSFFont;
          import org.apache.poi.hssf.usermodel.HSSFFooter;
          import org.apache.poi.hssf.usermodel.HSSFHeader;
          import org.apache.poi.hssf.usermodel.HSSFPrintSetup;
          import org.apache.poi.hssf.usermodel.HSSFRow;
          import org.apache.poi.hssf.usermodel.HSSFSheet;
          import org.apache.poi.hssf.usermodel.HSSFWorkbook;
          import org.apache.poi.hssf.util.HSSFColor;
          import org.apache.poi.hssf.util.Region;

          import cc.dynasoft.bean.Department;

          ///import org.apache.poi.hssf.record.HeaderRecorder;

          public class OutputExcel {

          public static boolean outputExcel(ExcelArgs args, List title, List list) {
           try {
            int cellNum = args.getCellNum(); // workbook
            int rowNum = args.getRowNum();
            /**
             * 建立表格設置。
             */
            HSSFWorkbook wb = new HSSFWorkbook(); // create the new Workbook
            HSSFSheet sheet = wb.createSheet(args.getSheetName()); // create
            /**
             * 打印設置
             */
            HSSFPrintSetup hps = sheet.getPrintSetup();
            hps.setPaperSize((short) 9); // 設置A4紙
            // hps.setLandscape(true); // 將頁面設置為橫向打印模式
            sheet.setHorizontallyCenter(true); // 設置打印頁面為水平居中
            // sheet.setVerticallyCenter(true); // 設置打印頁面為垂直居中
            wb.setPrintArea(0, "$A$2:$e$" + rowNum + 2);// 打印區域設置.
            /**
             * 設置表的Footer
             */
            HSSFFooter footer = sheet.getFooter();
            // 設置footer的位置和顯示的內容
            footer.setCenter("Time:" + HSSFFooter.date());
            footer.setRight("Page " + HSSFFooter.page() + " of "
              + HSSFFooter.numPages());
            /**
             * 設置表的Header
             */
            // 設置header的位置,共有三種位置和相應的顯示設置
            HSSFHeader header = sheet.getHeader();
            // header.setRight("Center Header");
            // header.setLeft("Left Header");
            header.setCenter(HSSFHeader.font("Stencil-Normal", "Italic")
              + HSSFHeader.fontSize((short) 30) + args.getHeaderTitle());
            // header.endDoubleUnderline();
            header.startUnderline();
            /**
             * 設置列的寬度
             */
            sheet.setColumnWidth((short) 2,
              (short) ((30 * 8) / ((double) 1 / 10)));
            sheet.setColumnWidth((short) 3,
              (short) ((40 * 8) / ((double) 1 / 10)));
            sheet.setColumnWidth((short) 4,
              (short) ((50 * 8) / ((double) 1 / 20)));
            /**
             * 創建第一行,也就是顯示的標題, 可以高置的高度,單元格的格式,顏色,字體等設置. 同時可以合并單元格.
             */
            HSSFRow row0 = sheet.createRow(0); // 創建0行
            row0.setHeight((short) 0x300); // 設直行的高度.
            HSSFFont font2 = wb.createFont(); // 創建字體格式
            font2.setColor(HSSFFont.SS_NONE); // 設置單元格字體的顏色.
            font2.setFontHeight((short) 700); // 設置字體大小
            font2.setFontName("Courier New"); // 設置單元格字體
            HSSFCell cell0 = row0.createCell((short) 0); // 創建0行0列.
            HSSFCellStyle style3 = wb.createCellStyle(); // 創建單元格風格.
            style3.setAlignment(HSSFCellStyle.VERTICAL_CENTER); // 垂直居中
            style3.setAlignment(HSSFCellStyle.ALIGN_CENTER); // /水平居中
            style3.setFont(font2); // 將字體格式加入到單元格風格當中
            // cell0.setCellType()
            cell0.setCellStyle(style3); // 設置單元格的風格.
            cell0.setCellValue(args.getHeaderTitle()); // 設置單元的內容.
            sheet.addMergedRegion(new Region(0, (short) 0, 0,
              (short) (cellNum - 1)));// 指定合并區域,前二個參數為開始處X,Y坐標.后二個為結束的坐標.
            /**
             * 設置其它數據 設置風格
             */
            HSSFCellStyle style = wb.createCellStyle();
            style.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 設置單無格的邊框為粗體
            style.setBottomBorderColor(HSSFColor.BLACK.index); // 設置單元格的邊框顏色.
            style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
            style.setLeftBorderColor(HSSFColor.BLACK.index);
            style.setBorderRight(HSSFCellStyle.BORDER_THIN);
            style.setRightBorderColor(HSSFColor.BLACK.index);
            style.setBorderTop(HSSFCellStyle.BORDER_THIN);
            style.setTopBorderColor(HSSFColor.BLACK.index);
            // style.setWrapText(true);//文本區域隨內容多少自動調整

            // style.setFillForegroundColor(HSSFColor.LIME.index);
            // style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
            /**
             * 設置風格1
             */
            HSSFCellStyle style1 = wb.createCellStyle();
            style1.setBorderBottom(HSSFCellStyle.BORDER_THIN); // 設置單無格的邊框為粗體
            style1.setBottomBorderColor(HSSFColor.BLACK.index); // 設置單元格的邊框顏色.
            style1.setBorderLeft(HSSFCellStyle.BORDER_THIN);
            style1.setLeftBorderColor(HSSFColor.BLACK.index);
            style1.setBorderRight(HSSFCellStyle.BORDER_THIN);
            style1.setRightBorderColor(HSSFColor.BLACK.index);
            style1.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
            style1.setTopBorderColor(HSSFColor.BLACK.index);
            style1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);// 最好的設置Pattern
            // 單元格背景的顯示模式.
            style1.setFillForegroundColor(new HSSFColor.RED().getIndex()); // 設置單元格背景色;
            style1.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平對齊方式
            // style1.setWrapText(true);//文本區域隨內容多少自動調整
            // style.setFillPattern(HSSFCellStyle.//);
            // 設置字體Color,首先創建Font對象,后對font設置,然后做為參數傳給style
            HSSFFont font = wb.createFont();
            font.setColor(HSSFFont.SS_NONE);
            // font.setFontHeightInPoints((short)24);
            font.setFontName("Courier New");
            // font.setItalic(true);
            // font.setStrikeout(true);//給字體加上刪除線
            font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
            style1.setFont(font);
            /**
             *
             * 設置第零行表格說明行
             *
             *
             *
             */
            HSSFRow row1 = sheet.createRow((short) 1);
            for (int j = 0; j < cellNum; j++) {
             HSSFCell cell = row1.createCell((short) j);
             cell.setCellValue((String) title.get(j));
             cell.setCellStyle(style1);
            }
            // style.setFillPattern(HSSFCellStyle.NO_FILL);

            /**
             * 設置表的內容主體
             */

            Iterator iter = list.iterator();
            for (int i = 2; iter.hasNext(); i++) {
             Department dep = (Department) iter.next();
             HSSFRow row = sheet.createRow((short) i);
             HSSFCell cell5 = row.createCell((short) 0);
             HSSFCell cell1 = row.createCell((short) 1);
             HSSFCell cell2 = row.createCell((short) 2);
             HSSFCell cell3 = row.createCell((short) 3);
             HSSFCell cell4 = row.createCell((short) 4);
             cell5.setCellValue(dep.getId());
             cell5.setCellStyle(style);
             cell1.setCellValue(dep.getParentId());
             cell1.setCellStyle(style);
             cell2.setCellValue(dep.getName());
             cell2.setCellStyle(style);
             cell3.setCellValue(dep.getDescription());
             cell3.setCellStyle(style);
             cell4.setCellValue(dep.getImagePath());
             cell4.setCellStyle(style);
            }
            // Write the output to a file}
            // FileOutputStream fileOut = new
            // FileOutputStream(args.getPath()+args.getFileName());
            /**
             * 對文件進行輸出操作。
             */
            FileOutputStream fileOut = new FileOutputStream(args
              .getPathAndName());
            wb.write(fileOut);
            // fileOut.close();
           } catch (IOException ex) {
            ex.printStackTrace();
           } catch (Exception ex) {
            ex.printStackTrace();
           }
           return true;
          }

          }

          posted on 2009-06-13 19:52 JavaSuns 閱讀(612) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 武陟县| 综艺| 绥棱县| 南华县| 白山市| 岳池县| 永昌县| 神池县| 运城市| 唐河县| 石首市| 长泰县| 临泉县| 宁安市| 石柱| 黄陵县| SHOW| 宁南县| 通化县| 马公市| 涪陵区| 乌拉特后旗| 灵丘县| 彰化县| 新泰市| 卢龙县| 巫溪县| 宁河县| 全椒县| 湾仔区| 辉南县| 田林县| 崇信县| 克拉玛依市| 灵璧县| 吉水县| 垦利县| 普格县| 三原县| 静宁县| 威远县|