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

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

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

    posts - 5,  comments - 7,  trackbacks - 0

    讀取和重寫 Workbooks

        

     1POIFSFileSystem fs      =
     2
     3            new POIFSFileSystem(new FileInputStream("workbook.xls"));
     4
     5    HSSFWorkbook wb = new HSSFWorkbook(fs);
     6
     7    HSSFSheet sheet = wb.getSheetAt(0);
     8
     9    HSSFRow row = sheet.getRow(2);
    10
    11    HSSFCell cell = row.getCell((short)3);
    12
    13    if (cell == null)
    14
    15        cell = row.createCell((short)3);
    16
    17    cell.setCellType(HSSFCell.CELL_TYPE_STRING);
    18
    19    cell.setCellValue("a test");
    20
    21    // 寫入文件
    22
    23    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    24
    25    wb.write(fileOut);
    26
    27    fileOut.close();
    28
    29

                       

    在單元格中換行

       

     1HSSFWorkbook wb = new HSSFWorkbook();
     2
     3    HSSFSheet s = wb.createSheet();
     4
     5    HSSFRow r = null;
     6
     7    HSSFCell c = null;
     8
     9    HSSFCellStyle cs = wb.createCellStyle();
    10
    11    HSSFFont f = wb.createFont();
    12
    13    HSSFFont f2 = wb.createFont();
    14
    15    cs = wb.createCellStyle();
    16
    17    cs.setFont( f2 );
    18
    19    //開啟Word Wrap
    20
    21    cs.setWrapText( true );
    22
    23    r = s.createRow( (short2 );
    24
    25    r.setHeight( (short0x349 );
    26
    27    c = r.createCell( (short2 );
    28
    29    c.setCellType( HSSFCell.CELL_TYPE_STRING );
    30
    31    c.setCellValue( "Use "n with word wrap on to create a new line" );
    32
    33    c.setCellStyle( cs );
    34
    35    s.setColumnWidth( (short2, (short) ( ( 50 * 8 ) / ( (double1 / 20 ) ) );
    36
    37    FileOutputStream fileOut = new FileOutputStream( "workbook.xls" );
    38
    39    wb.write( fileOut );
    40
    41    fileOut.close();
    42
    43

    數據格式化

       

     1 HSSFWorkbook wb = new HSSFWorkbook();
     2
     3    HSSFSheet sheet = wb.createSheet("format sheet");
     4
     5    HSSFCellStyle style;
     6
     7    HSSFDataFormat format = wb.createDataFormat();
     8
     9    HSSFRow row;
    10
    11    HSSFCell cell;
    12
    13    short rowNum = 0;
    14
    15    short colNum = 0;
    16
    17    row = sheet.createRow(rowNum++);
    18
    19    cell = row.createCell(colNum);
    20
    21    cell.setCellValue(11111.25);
    22
    23    style = wb.createCellStyle();
    24
    25    style.setDataFormat(format.getFormat("0.0"));
    26
    27    cell.setCellStyle(style);
    28
    29    row = sheet.createRow(rowNum++);
    30
    31    cell = row.createCell(colNum);
    32
    33    cell.setCellValue(11111.25);
    34
    35    style = wb.createCellStyle();
    36
    37    style.setDataFormat(format.getFormat("#,##0.0000"));
    38
    39    cell.setCellStyle(style);
    40
    41    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    42
    43    wb.write(fileOut);
    44
    45    fileOut.close();
    46
    47

                       

    使得一個Sheet適合一頁

        

     1HSSFWorkbook wb = new HSSFWorkbook();
     2
     3    HSSFSheet sheet = wb.createSheet("format sheet");
     4
     5    HSSFPrintSetup ps = sheet.getPrintSetup();
     6
     7    sheet.setAutobreaks(true);
     8
     9    ps.setFitHeight((short)1);
    10
    11ps.setFitWidth((short)1);
    12
    13    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    14
    15    wb.write(fileOut);
    16
    17    fileOut.close();
    18
    19

                       

    設置打印區域

        

     1HSSFWorkbook wb = new HSSFWorkbook();
     2
     3    HSSFSheet sheet = wb.createSheet("Sheet1");
     4
     5    wb.setPrintArea(0"$A$1:$C$2");
     6
     7    //為第一個Sheet頁設置打印區域
     8
     9    //也可以這樣
    10
    11    //wb.setPrintArea(0, 0, 1, 0, 0) ,詳細參考java doc
    12
    13    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    14
    15    wb.write(fileOut);
    16
    17    fileOut.close();        
    18

               

    設置頁腳的頁數

       

     1 HSSFWorkbook wb = new HSSFWorkbook();
     2
     3    HSSFSheet sheet = wb.createSheet("format sheet");
     4
     5    HSSFFooter footer = sheet.getFooter()
     6
     7    footer.setRight( "Page " + HSSFFooter.page() + " of " + HSSFFooter.numPages() );
     8
     9    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    10
    11    wb.write(fileOut);
    12
    13    fileOut.close();
    14
    15

                       

    使用簡便的函數

    這些函數保存在contrib并且提供了一些使用特征功能,例如設置合并單元格的邊框,不用創建新樣式改變樣式屬性。

        

     1HSSFWorkbook wb = new HSSFWorkbook();
     2
     3    HSSFSheet sheet1 = wb.createSheet( "new sheet" );
     4
     5    // 合并單元格
     6
     7    HSSFRow row = sheet1.createRow( (short1 );
     8
     9    HSSFRow row2 = sheet1.createRow( (short2 );
    10
    11    HSSFCell cell = row.createCell( (short1 );
    12
    13    cell.setCellValue( "This is a test of merging" );
    14
    15    Region region = new Region( 1, (short14, (short4 );
    16
    17    sheet1.addMergedRegion( region );
    18
    19    // 設置邊框和顏色.
    20
    21    final short borderMediumDashed = HSSFCellStyle.BORDER_MEDIUM_DASHED;
    22
    23    HSSFRegionUtil.setBorderBottom( borderMediumDashed,
    24
    25        region, sheet1, wb );
    26
    27    HSSFRegionUtil.setBorderTop( borderMediumDashed,
    28
    29        region, sheet1, wb );
    30
    31    HSSFRegionUtil.setBorderLeft( borderMediumDashed,
    32
    33        region, sheet1, wb );
    34
    35    HSSFRegionUtil.setBorderRight( borderMediumDashed,
    36
    37        region, sheet1, wb );
    38
    39    HSSFRegionUtil.setBottomBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);
    40
    41    HSSFRegionUtil.setTopBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);
    42
    43    HSSFRegionUtil.setLeftBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);
    44
    45    HSSFRegionUtil.setRightBorderColor(HSSFColor.AQUA.index, region, sheet1, wb);
    46
    47    // 展示HSSFCellUtil類的用法
    48
    49    HSSFCellStyle style = wb.createCellStyle();
    50
    51    style.setIndention((short)4);
    52
    53    HSSFCellUtil.createCell(row, 8"This is the value of the cell", style);
    54
    55    HSSFCell cell2 = HSSFCellUtil.createCell( row2, 8"This is the value of the cell");
    56
    57    HSSFCellUtil.setAlignment(cell2, wb, HSSFCellStyle.ALIGN_CENTER);
    58
    59    // 寫入文件
    60
    61    FileOutputStream fileOut = new FileOutputStream( "workbook.xls" );
    62
    63    wb.write( fileOut );
    64
    65    fileOut.close();
    66
    67

                       

    在Sheet頁中上下移動行

       

     1 HSSFWorkbook wb = new HSSFWorkbook();
     2
     3    HSSFSheet sheet = wb.createSheet("row sheet");
     4
     5    //創建不同的行列
     6
     7    // 將6-11行移動到0-5行
     8
     9    sheet.shiftRows(510-5);
    10
    11    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    12
    13    wb.write(fileOut);
    14
    15    fileOut.close();
    16
    17

                       

    設置一個Sheet頁為被選中的

        

     1HSSFWorkbook wb = new HSSFWorkbook();
     2
     3    HSSFSheet sheet = wb.createSheet("row sheet");
     4
     5    sheet.setSelected(true);
     6
     7    // 創建不同的行列。。。
     8
     9    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    10
    11    wb.write(fileOut);
    12
    13    fileOut.close();
    14
    15

                       

    設置放大屬性

     

     1The zoom is expressed as a fraction. For example to express a zoom of 75% use 3 for the numerator and 4 for the denominator. 
     2
     3Zoom被明確為一個分數,例如下面的75%使用3作為分子,4作為分母。
     4
     5    HSSFWorkbook wb = new HSSFWorkbook();
     6
     7    HSSFSheet sheet1 = wb.createSheet("new sheet");
     8
     9    sheet1.setZoom(3,4);   // 75%放大
    10
    11    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    12
    13    wb.write(fileOut);
    14
    15    fileOut.close();
    16

     

                       

    拆分和凍結窗口

    這里有你創建的兩種窗口:凍結窗口和拆分窗口。

    一個凍結窗口是被行和列拆分開的,可以按照如下設置創建凍結窗口。

     

    1sheet1.createFreezePane( 3232 ); 

     

    前兩個參數是你要用來拆分的列數和行數。后兩個參數是下面窗口的可見象限,其中第三個參數是右邊區域可見的左邊列數,第四個參數是下面區域可見的首行。

    拆分可以將區域分成四個工作區。拆分發生在像素級別而且用戶可以通過拖拽到新的位置來判斷。

    用如下方式拆分窗口:

     

    1sheet2.createSplitPane( 2000200000, HSSFSheet.PANE_LOWER_LEFT ); 

     

    The first parameter is the x position of the split. This is in 1/20th of a point. A point in this case seems to equate to a pixel. The second parameter is the y position of the split. Again in 1/20th of a point.

    第一個參數是拆分的x位置。這里單位是一個點的1/20,在這種比例下點看起來是一個像素。第二個參數是拆分的y位置,也是一個點的1/20。第三、四個參數同上。最后一個參數說明當前哪個窗口有焦點,四個選擇HSSFSheet.PANE_LOWER_LEFT, PANE_LOWER_RIGHT, PANE_UPPER_RIGHT or PANE_UPPER_LEFT。

                          

    反復的行和列(設置打印標題)

    在打印輸出的時候需要使用HSSFWorkbook類的setRepeatingRowsAndColumns()方法反復的設置行和列。

    這個方法包含5個參數,第一個參數是Sheet頁的索引(從0開始算),第二、三個參數是重寫的列的范圍。不使用重寫功能的話可以設置-1代替。第四、五個參數是重寫的行的范圍。不使用重寫功能的話可以設置-1代替。

        

     1HSSFWorkbook wb = new HSSFWorkbook();
     2
     3    HSSFSheet sheet1 = wb.createSheet("new sheet");
     4
     5    HSSFSheet sheet2 = wb.createSheet("second sheet");
     6
     7    // 第一個Sheet設置從0到2的列
     8
     9    wb.setRepeatingRowsAndColumns(0,0,2,-1,-1);
    10
    11    // 第二個Sheet設置行和列
    12
    13    wb.setRepeatingRowsAndColumns(1,4,5,1,2);
    14
    15    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    16
    17    wb.write(fileOut);
    18
    19    fileOut.close();
    20
    21

                       

    頁眉和頁腳

    這是個頁眉的例子,但是頁腳也同樣適用.

       

     1 HSSFWorkbook wb = new HSSFWorkbook();
     2
     3    HSSFSheet sheet = wb.createSheet("new sheet");
     4
     5    HSSFHeader header = sheet.getHeader();
     6
     7    header.setCenter("Center Header");
     8
     9    header.setLeft("Left Header");
    10
    11    header.setRight(HSSFHeader.font("Stencil-Normal""Italic"+
    12
    13                    HSSFHeader.fontSize((short16+ "Right w/ Stencil-Normal Italic font and size 16");
    14
    15    FileOutputStream fileOut = new FileOutputStream("workbook.xls");
    16
    17    wb.write(fileOut);
    18
    19    fileOut.close();
    posted on 2008-11-25 12:01 Vincent-chen 閱讀(1186) 評論(0)  編輯  收藏 所屬分類: POIPrint
    主站蜘蛛池模板: 夭天干天天做天天免费看| 免费人成在线观看播放国产| 国产精品亚洲色图| 亚洲性日韩精品国产一区二区| 色欲A∨无码蜜臀AV免费播| 亚洲熟妇无码av另类vr影视 | 亚洲成Av人片乱码色午夜| 97视频热人人精品免费| 久久av免费天堂小草播放| 亚洲视频免费观看| 亚洲美女在线国产| 久久不见久久见免费影院| 黄桃AV无码免费一区二区三区| 日韩亚洲国产综合高清| 亚洲成A∨人片在线观看不卡| 成人永久免费高清| 4虎1515hh永久免费| 精精国产www视频在线观看免费| 精品亚洲国产成AV人片传媒| 亚洲高清无码综合性爱视频| 免费H网站在线观看的| 国产免费一区二区三区免费视频 | 国产精品成人免费福利| 国产99精品一区二区三区免费| 亚洲香蕉久久一区二区| 久久精品国产精品亚洲色婷婷| 国产午夜无码视频免费网站| 五月婷婷综合免费| 美女视频黄a视频全免费网站色窝 美女被cao网站免费看在线看 | 久久免费线看线看| eeuss影院www天堂免费| 亚洲国产成人久久精品软件| 久久狠狠高潮亚洲精品| 亚洲人成亚洲人成在线观看| 免费一级毛片在线播放| 啦啦啦在线免费视频| 国内精品免费麻豆网站91麻豆| 国产好大好硬好爽免费不卡| 国产成人AV免费观看| 一级大黄美女免费播放| 看全免费的一级毛片|