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

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

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

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    poi筆記

    Posted on 2008-03-14 22:26 leekiang 閱讀(4158) 評論(0)  編輯  收藏 所屬分類: 文件處理
    注意用poi解析器從word中抽取文本后,輸入流會關閉,原因如下:
    InputStreams passed to POIFSFileSystem are now automatically closed. A warning is generated for people who might've relied on them not being closed before, and a wrapper to restore the old behaviour is supplied(POI-DEVELOPERS)
    據說在POI3.0.3會修正該問題。

    1,poi格子里的文本如何換行
    ? 加"\n",同時設置style.setWrapText(true);
    ?
    2,style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);
    ?style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
    ?設置前景色,有半透明的效果
    ?
    3,sheet.addMergedRegion(new Region(0, (short) 0, 0, (short) 1));// 起始cell行、起始cell列、結束cell行、結束cell列。
    ?? 被合并了的單元格不需要生成。
    ?? 單元格合并後設置邊框只在原第一個上有效,如果想應用的合并後的整體,則需要一個個的Create出單元格并應用樣式,這個明顯是一個不太方便的操作,期待POI下一版的改進了
    ?? 注意行是y軸,列是x軸。
    ?? poi-contrib下的HSSFRegionUtil可以設置合并區域的邊框的顏色和樣式
    例如:HSSFRegionUtil.setLeftBorderColor(HSSFColor.BLACK.index,row,sheet,wb);

    4,sheet.createFreezePane(2, 1);
    ? 凍結窗口,左上角為行參和列參的起始處,從0開始
    ?
    5,列寬sheet.setColumnWidth((short) 0, (short) (35.7 * 110));//第一個參數為列的下標,110為想設置的寬度像素。
    ? http://www.cnblogs.com/interboy/archive/2007/08/27/872028.html

    6,行高row.setHeight((short) (15.625 * 100));//100為要設置的行高的像素
    ?? row.setHeightInPoints((short)100);//應該可以達到同樣的效果

    7, POI將註解的部分,視做一個文字方塊,我們可以設定它的大小及內容,然後將之指定給某特定的Cell。
    節錄部分Code如下:
    HSSFPatriarch patr = sheet.createDrawingPatriarch();
    HSSFComment comment = patr.createComment(new HSSFClientAnchor(0, 0, 0, 0, (short)4, 2, (short) 8, rowCount));
    HSSFRichTextString str = new HSSFRichTextString("TEST");
    comment.setString(str);
    comment.setAuthor("TEST");
    cell.setCellComment(comment);

    8,sheet的中文名
    workbook.setSheetName(0,"統計",(short)1);//第三個參數為編碼方式,HSSFWorkbook.ENCODING_UTF_16=1
    sheet的名稱不允許出現重復。

    9, 先定義一個基本樣式,再復制樣式的屬性。不知何故不能clonebean
    ? HSSFCellStyle headerStyle = workbook.createCellStyle();
    ? PropertyUtils.copyProperties(headerStyle, baseStyle);//

    10, 輸出,中文名
    ??????? response.reset();
    ?? ??? ?response.setContentType("applicationnd.ms-excel");
    ?? ??? ?response.addHeader("Content-disposition",
    ?? ??? ??? ??? ?"attachment;filename="+new String("統計".getBytes("GBK"), "ISO-8859-1")+".xls");
    ?? ??? ?ServletOutputStream out = response.getOutputStream();
    ?? ??? ?workbook.write(out);
    ?? ??? ?out.flush();
    ?? ??? ?out.close();

    11,cell.setCellValue(new HSSFRichTextString("測試"));
    在poi2.5.1里不管用,只能用cell.setCellValue("測試");
    忘了二者有何區別

    12,直接用workbook.getBytes()得到的文檔內容的結構是有問題的,會導致打開xls時報錯。
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    workBook.write(bos);
    //ByteArrayInputStream is = new ByteArrayInputStream(workBook.getBytes());//錯誤
    ByteArrayInputStream is = new ByteArrayInputStream(bos.toByteArray());//正確
    詳見 http://numenzq.javaeye.com/blog/218816

    13,POI的老版本的下載地址:http://archive.apache.org/dist/jakarta/poi/release/bin

    14,每個sheet有65536的最大行數限制?
    ?? 數據量非常大時,拆分為多個sheet(每個1萬行)可顯著降低內存占用。
    ?? http://www.javaeye.com/topic/74835?page=3

    15,可用PropertyUtils.copyProperties(newStyle, baseStyle)把baseStyle的屬性拷貝到newStyle中,但Font等拷貝不了。(淺拷貝,深拷貝?)

    16,POI如何復制行,設置分頁符bug? 使用POI操作Excel的幾點注意事項
    和http://www.tkk7.com/liaojiyong/archive/2007/11/14/160588.html

    17,復制行,復制sheet
    http://zhidao.baidu.com/question/66868683.html
    http://www.aub.org.cn/J2SE/Article137612.html
    http://zhidao.baidu.com/question/42447398.html

    18,用HSSFCell的getCellType()只能判斷三種類型,返回值為int ? 0,1,2 ?
    ? numeric(0), ? formula(2) ? or ? string(1) ?
    ? 但是僅僅依靠這個有時候不能完全解決問題, ?
    ? 有時候需要用HSSFDataFormat來共同判斷: ?
    ??? cell.getCellStyle().getDataFormat()
    見http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/BuiltinFormats.html
    ? https://svn.apache.org/repos/asf/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java


    19,poi3.2把以下屬性或方法刪掉了:
    HSSFWorkbook.ENCODING_UTF_16
    cell.setEncoding
    所以還是繼續用poi3.0.2吧
    ?? ??? ?
    http://blog.csdn.net/impeller/archive/2007/10/29/1855368.aspx
    解析Excel注釋,填充并生成報表的一個例子
    http://hi.baidu.com/bluewhale84/blog/item/b9ebd5c295911130e4dd3bd0.html
    http://kevintuntun.bokee.com/2692649.html
    http://www.ccw.com.cn/htm/center/prog/02_10_22_2.asp
    http://llying.javaeye.com/blog/171455
    http://hi.baidu.com/fish1996/blog/item/71412181e9825bdabd3e1eed.html(toutf8string)
    poi的一個讓人失望的bug

    openxml4j支持excel2007


    主站蜘蛛池模板: 日产乱码一卡二卡三免费| 免费特级黄毛片在线成人观看| 亚洲精品线路一在线观看| 亚洲成a人片在线观看天堂无码| 免费国产作爱视频网站| 一级日本高清视频免费观看| 成人免费无码精品国产电影| 亚洲av色香蕉一区二区三区蜜桃| 国产精品99爱免费视频| 亚洲美女在线国产| 国产真人无码作爱免费视频| 亚洲成AV人片一区二区| 日本黄色动图免费在线观看| 精品亚洲麻豆1区2区3区| 国产人在线成免费视频| 亚洲久热无码av中文字幕| 国产成人在线观看免费网站| sss在线观看免费高清| 久久精品国产精品亚洲色婷婷| 91精品国产免费| 国产AV旡码专区亚洲AV苍井空| 在线视频免费国产成人| 亚洲一级片免费看| 亚洲视频在线观看免费视频| 毛片免费全部播放一级| 一级视频在线免费观看| 亚洲高清国产拍精品26U| 日韩国产免费一区二区三区| 亚洲AV电影天堂男人的天堂| 在线观看亚洲天天一三视| 99视频有精品视频免费观看| 亚洲成_人网站图片| 国产亚洲日韩在线三区| 在线永久看片免费的视频| 黄色毛片免费观看| 亚洲AV午夜成人片| 国产亚洲精品免费| 理论亚洲区美一区二区三区| 国产精品国产亚洲精品看不卡| 黄色成人网站免费无码av| 中文字幕乱理片免费完整的|