<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JXL(JExcleApi)Excle詳細使用心得

    功能:寫入/讀取Excle,設置打印樣式排版,鎖定列與行,設置打印標題,給Excle加密。

    java報表JXL和POI打印設置
     =======================================   引用來自互聯網  start ===============================================

    JXL的打印設置在jxl.SheetSettings這個類中,我們可以通過方法Sheet(或者WritableSheet#getSettings()獲取。

    1.頁面

    1.1方向

    SheetSetting#setOrientation(PageOrientation po)

    參數:  PageOrientation#LANDSCAPE       橫向打印

    PageOrientation# PORTRAIT       縱向打印

    1.2縮放

    1.2.1縮放比例(A) SheetSetting #setScaleFactor (int);百分比形式

    1.2.2調整(F)

    頁寬 SheetSetting #setFitWidth(int);

    頁高 SheetSetting #setFitHeight(int);

    1.3紙張大小(Z) SheetSetting #setPaperSize (PaperSize);

    紙張大小的定義說明參見PaperSize類中的常量。

    1.4起始頁碼(R) SheetSetting #setPageStrart(int);[默認狀態]

    2頁面距

    2.1(T) SheetSetting # setTopMargin (double);

    2.2(B) SheetSetting # setBottomMargin (double);

    2.3(L) SheetSetting # setLeftMargin (double);

    2.4(R) SheetSetting # setRightMargin (double);

    2.5頁眉(A) SheetSetting #setHeaderMargin(double);

    2.6頁腳(F) SheetSetting #setFooterMargin(double);

    2.7居中方式

    2.7.1水平(Z) SheetSetting # setHorizontalCentre (boolean);

    2.7.2垂直(V) SheetSetting #setVerticallyCenter(boolean);

    3頁眉/頁腳

    3.1頁眉SheetSetting # setHeaderHeaderFooter;

    說明:

    對于HeaderFooter的設置,首先確定頁眉的位置(左、中、右),通過HeaderFooter#getCentre()(或者getLeft()getRight())方法獲取HeaderFooter.Contents類,之后對這個類的屬性進行操作。

    下面簡單介紹幾個常用方法:

    設置字號:Contents#setFontSize(int)

    設置字體:Contents#setFontName(String)

    設置內容:Contents# appendString),還有appendDate()當前日期等等,具體參考Contents類說明

    3.2頁腳SheetSetting # setFooterHeaderFooter);

    說明同上

    4工作表

    4.1打印區域

    SheetSettings #setPrintArea(firstCol, firstRow, lastCol, lastRow)

    4.2打印標題

    SheetSettings#setPrintTitles (firstRow,lastRow,firstCol,lastCol);

    SheetSettings#setPrintTitlesCol(firstCol,lastCol)

    SheetSettings#setPrintTitlesRow(firstRow,lastRow)
     =======================================   引用來自互聯網  end ===============================================

    =======================================  自己寫的Demo ========================================
    DEMO

     

    package finance.barcode;

    import static jxl.format.PaperSize.getPaperSize;

    import include.nseer_db.nseer_db;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;

    import jxl.CellView;
    import jxl.HeaderFooter;
    import jxl.Workbook;
    import jxl.format.Alignment;
    import jxl.format.Border;
    import jxl.format.BorderLineStyle;
    import jxl.format.Colour;
    import jxl.format.PageOrientation;
    import jxl.format.PaperSize;
    import jxl.format.VerticalAlignment;
    import jxl.write.Label;
    import jxl.write.NumberFormats;
    import jxl.write.WritableCellFormat;
    import jxl.write.WritableFont;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;
    import jxl.write.WriteException;

    /**
     * 
     * 
    @author Solitary
     * 
    @author xing5156@gmail.com
     *
     
    */

    public class BarToExcle extends nseer_db{

        
    /** *********創建字體**************** */
        
    public WritableFont BlodFont ;             // 粗體
        public WritableFont NormalFont ;        // 普通字體
        public WritableFont BarCodeFont ;         // 條形碼字體
        /** ************以下設置幾種格式的單元格屬性************ */
        
    public WritableCellFormat wcf_header ;    // 標題樣式
        public WritableCellFormat wcf_left ;    // 用于正文左
        public WritableCellFormat wcf_barcode ; // 用于條形碼格式
        
        
        
    public BarToExcle(String db) {        
            
    super(db) ;
            
            
    /** ********* 初始化字體 **************** */
            BlodFont 
    = new WritableFont(WritableFont.ARIAL, 20, WritableFont.BOLD ) ;
            NormalFont 
    = new WritableFont(WritableFont.ARIAL, 15);
            BarCodeFont 
    = new WritableFont(WritableFont.ARIAL, 15, WritableFont.BOLD);
            
            
    try {
                
    /** ********* 初始化單元格屬性 **************** */
                
    // 初始化標題樣式
                wcf_header = new WritableCellFormat(BlodFont, NumberFormats.TEXT) ; // 實例化單元格格式對象(標題、居中)
                wcf_header.setBorder(Border.ALL, BorderLineStyle.THIN) ;    // 線條
                wcf_header.setVerticalAlignment(VerticalAlignment.CENTRE);     // 垂直對齊
                wcf_header.setAlignment(Alignment.CENTRE);                     // 水平對齊
                wcf_header.setBackground(Colour.GRAY_25) ;                    // 背景顏色
                wcf_header.setWrap(true);                                     // 是否換行
                
                
    // 用于正文左
                wcf_left = new WritableCellFormat(NormalFont);                // 實例化單元格格式對象(正文、左對齊)
                wcf_left.setBorder(Border.ALL, BorderLineStyle.THIN);         // 線條
                wcf_left.setVerticalAlignment(VerticalAlignment.CENTRE);     // 垂直對齊
                wcf_left.setAlignment(Alignment.LEFT);
                wcf_left.setLocked(
    false) ;                                    // 設置鎖定,還得設置SheetSettings啟用保護和設置密碼
                wcf_left.setWrap(true);                                     // 是否換行
                
                
    // 用于條形碼格式
                wcf_barcode = new WritableCellFormat(BarCodeFont);            // 實例化單元格格式對象(第一列、條形碼)
                wcf_barcode.setBorder(Border.ALL, BorderLineStyle.THIN);     // 線條
                wcf_barcode.setVerticalAlignment(VerticalAlignment.CENTRE); // 垂直對齊
                wcf_barcode.setAlignment(Alignment.CENTRE);
                wcf_barcode.setLocked(
    true) ;                                // 設置鎖定,還得設置SheetSettings啟用保護和設置密碼
                wcf_barcode.setWrap(true);                                     // 是否換行
            }
     catch (WriteException e) {
                e.printStackTrace();
            }

        }

        
        
        
    // 創建Excle及工作表
        public int createExcle(StringBuffer buf) {
            String barCodes[] 
    = null ;
            
    try {
                
    /** ********** 創建工作薄  ********** **/
                WritableWorkbook workbook 
    = Workbook.createWorkbook(new File("d:" + File.separator + "barcode.xls")) ;
                
    /** ********** 創建工作表  ********** **/
                WritableSheet sheet 
    = workbook.createSheet("條形碼"0) ;
                
                
    /** ********* 打印屬性 **************** */
                sheet.getSettings().setOrientation(PageOrientation.LANDSCAPE) ;    
    // 設置為橫向打印
                sheet.getSettings().setPaperSize(PaperSize.A4) ;            // 設置紙張
                sheet.getSettings().setFitHeight(297) ;                        // 打印區高度
                sheet.getSettings().setFitWidth(210) ;                        // 打印區寬度    
                
    // 設置列寬
                sheet.setColumnView(010); // 第1列
                sheet.setColumnView(130); // 第2列
                sheet.setColumnView(215);
                sheet.setColumnView(
    315);
                sheet.setColumnView(
    430);
                sheet.setColumnView(
    540);
                
    // 設置邊距            
                sheet.getSettings().setTopMargin(0.5) ;
                sheet.getSettings().setBottomMargin(
    0.3) ;
                sheet.getSettings().setLeftMargin(
    0.1) ;
                sheet.getSettings().setRightMargin(
    0.1) ;
                
    // 設置頁腳
                sheet.getSettings().getFooter().getCentre().appendPageNumber() ;    // 為頁腳添加頁數
                sheet.getSettings().setFooterMargin(0.07) ;                            // 設置頁腳邊距(下)
                
    // 設置保護,并加密碼 鎖定的Cell才會起作用
                sheet.getSettings().setProtected(true) ;                            // 啟用保護
                sheet.getSettings().setPassword("xing5156") ;                        // 設置保護密碼
                
    // 設置打印標題行
                sheet.getSettings().setPrintHeaders(true) ;                            // 啟用打印頭信息
                sheet.getSettings().setPrintTitlesRow(00) ;                        // 設置標題行
                
                
    /** *********插入標題內容**************** */
                sheet.addCell(
    new Label(00"條碼"this.wcf_header));
                sheet.addCell(
    new Label(10"公司"this.wcf_header));
                sheet.addCell(
    new Label(20"部門"this.wcf_header));
                sheet.addCell(
    new Label(30"姓名"this.wcf_header));
                sheet.addCell(
    new Label(40"類型"this.wcf_header));
                sheet.addCell(
    new Label(50"描述"this.wcf_header));

                barCodes 
    = buf.toString().split("") ;
                
    for(int i = 0, y = 1; i < barCodes.length; i++, y++{
                    sheet.setRowView(y, 
    400) ;
                    sheet.addCell(
    new Label(0, y, barCodes[i], this.wcf_barcode)) ;
                    sheet.addCell(
    new Label(1, y, ""this.wcf_left)) ;
                    sheet.addCell(
    new Label(2, y, ""this.wcf_left)) ;
                    sheet.addCell(
    new Label(3, y, ""this.wcf_left)) ;
                    sheet.addCell(
    new Label(4, y, ""this.wcf_left)) ;
                    sheet.addCell(
    new Label(5, y, ""this.wcf_left)) ;
                }

                
                
    /** **********以上所寫的內容都是寫在緩存中的,下一句將緩存的內容寫到文件中******** */
                workbook.write();
                
    /** *********關閉文件************* */
                workbook.close();
                System.out.println(
    "導出成功");
                
            }
     catch (Exception e) {
                System.out.println(
    "在輸出到EXCEL的過程中出現錯誤,錯誤原因:" + e.toString());
            }

            
    return barCodes.length ;
        }

        
    /**
         * 構建Workbook對象, 將內容讀取到內存中再更新到原來文件中 
         * 最后關閉寫入操作來完成文件更新
         * 
    @param buf 該對象中包含(11AA◎55BC◎523A)類似的數據,以◎拆分
         * 
    @return    返回本次更新條數
         
    */

        
    public int updateExcle(StringBuffer buf) throws Exception {            // 更新Excle
            
            File file 
    = new File("d:" + File.separator + "barcode.xls") ;
            Workbook wb 
    = null;
            
    if(file.exists()) {
                wb 
    = Workbook.getWorkbook(file);
                WritableWorkbook wwb 
    = Workbook.createWorkbook(file, wb);
                
    // 讀取第一張工作表
                WritableSheet sheet = wwb.getSheet(0) ;
                
                
    int count = sheet.getRows() ;
                String barCodes[] 
    = buf.toString().split("") ;
                
    for(int i = count , y = 0; y < barCodes.length; y++ , i++{
                    sheet.setRowView(i, 
    400) ;
                    sheet.addCell(
    new Label(0, i, barCodes[y], this.wcf_barcode)) ;
                    sheet.addCell(
    new Label(1, i, ""this.wcf_left)) ;
                    sheet.addCell(
    new Label(2, i, ""this.wcf_left)) ;
                    sheet.addCell(
    new Label(3, i, ""this.wcf_left)) ;
                    sheet.addCell(
    new Label(4, i, ""this.wcf_left)) ;
                    sheet.addCell(
    new Label(5, i, ""this.wcf_left)) ;
                }

                wwb.write() ;
                wwb.close() ;
                wb.close() ;
                System.out.println(
    "更新完成!") ;
                
    return barCodes.length ;
            }
     else {
                
    return createExcle(buf) ;
            }

        }

        
        
    // 測試
    //    public static void main(String args[]) {
    //        StringBuffer buf = new StringBuffer() ;        // 測試數據
    //        buf.append("56KF").append("◎").append("12AA").append("◎").append("23GH").append("◎").append("55JJ") ;
    //        try {
    //            BarToExcle bte = new BarToExcle() ;
    //            bte.updateExcle(buf) ;
    //        } catch (Exception e) {
    //            e.printStackTrace();
    //        }
    //    }
    }


    posted on 2011-11-18 14:04 Solitary 閱讀(28024) 評論(1)  編輯  收藏 所屬分類: Tool

    評論

    # re: JXL(JExcleApi)Excle詳細使用心得 2015-11-13 10:02 周周周周

    include是自己洗的么、  回復  更多評論   


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


    網站導航:
     
    <2011年11月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精品久久久久成人码免费动漫 | 国产精品区免费视频| 天天看免费高清影视| 久久国产亚洲电影天堂| 老司机福利在线免费观看| 日韩免费精品视频| 亚洲狠狠综合久久| free哆拍拍免费永久视频| 国产精品久久久久影院免费| 亚洲最大中文字幕| 玖玖在线免费视频| 国产成人精品亚洲精品| 亚洲av成人中文无码专区| 香蕉97超级碰碰碰免费公| 久久亚洲国产精品五月天| 一级做a爰性色毛片免费| 日本免费电影一区| 亚洲一区二区三区在线网站| 日韩在线不卡免费视频一区| 亚洲线精品一区二区三区| 羞羞视频免费网站含羞草| 午夜寂寞在线一级观看免费| 亚洲国产美女精品久久久久| 久久国产精品2020免费m3u8 | 日韩在线观看免费完整版视频| 成年女人看片免费视频播放器 | 亚洲欧美成人一区二区三区| 18级成人毛片免费观看| 亚洲av日韩av无码黑人| 国产在线播放线91免费| 亚洲一区二区精品视频| 特级av毛片免费观看| 国产黄色片在线免费观看| 中文字幕无码亚洲欧洲日韩| 男女做羞羞的事视频免费观看无遮挡| 久久久亚洲欧洲日产国码是AV| 久久免费区一区二区三波多野| 亚洲AV无码久久精品蜜桃| 精品免费视在线观看| 亚洲av永久无码精品表情包| 免费无码黄网站在线看|