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

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

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

    JAVA

    人生若只如初見,何事秋風悲畫扇。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      50 隨筆 :: 25 文章 :: 157 評論 :: 0 Trackbacks

      這里解析excel文件用了第三方所提供的一些類庫。Jakarta的POI項目提供了一組操縱Windows文檔的Java API,如下幾個類提供了操作Excel文

      件的方便的途徑:HSSFWorkbook、HSSFSheet、HSSFRow、HSSFCell,分別代表了Excel電子表格中的Book、Sheet、行和單元格。你可以在下面地址下載到最新的POI工具包:
      http://jakarta.apache.org/poi/index.html

    一些常用操作如下:

    // 所導入的第三方類包
    import ?org.apache.poi.hssf.usermodel.HSSFCell;
    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.poifs.filesystem.POIFSFileSystem;

    // 初始化
    POIFSFileSystem?poiFs = new ?POIFSFileSystem(inputStream);
    HSSFWorkbook?wb?
    = ? new ?HSSFWorkbook(poiFs);
    HSSFSheet?sheet?
    = ?wb.getSheetAt( 0 );
    int ?rowNumber = sheet.getFirstRowNum();
    int ?lastRowNumber = sheet.getLastRowNum();


      通過sheet.getRow(rowNumber)取得一行的數據。

      對每一行HSSFRow,它可以通過getFirstCellNum(cellNum) or getLastCellNum(cellNum)取得此行的格數(列數)。

      通過HSSFCell可以判斷每個表格中的數據類型,DOC中描述如下:

    ?

    static ? int ?CELL_TYPE_BLANK?
    ??????????Blank?Cell?type?(
    3 )?
    static ? int ?CELL_TYPE_BOOLEAN?
    ??????????Boolean?Cell?type?(
    4 )?
    static ? int ?CELL_TYPE_ERROR?
    ??????????Error?Cell?type?(
    5 )?
    static ? int ?CELL_TYPE_FORMULA?
    ??????????Formula?Cell?type?(
    2 )?
    static ? int ?CELL_TYPE_NUMERIC?
    ??????????Numeric?Cell?type?(
    0 )?
    static ? int ?CELL_TYPE_STRING?
    ??????????String?Cell?type?(
    1 )?


      這樣,對于一個現有的excel文件,我們可以取得它所以行的數據,并對行中的每條數據根據不同的類型進行操作了!

    將excel文件中的一行具體cell轉換成java數據實例:

    ? private ?String?getStringCellValue(HSSFCell?cell, boolean ?dateFlag) {
    ????????String?value
    = null ;
    ????????
    if (cell == null )
    ????????????
    return ? null ;
    ????????
    switch ?(cell.getCellType()) {
    ????????????????
    ????????????
    case ?HSSFCell.CELL_TYPE_BOOLEAN:
    ????????????????value
    = String.valueOf(cell.getBooleanCellValue());

    ????????????????
    break ;
    ????????????
    case ?HSSFCell.CELL_TYPE_NUMERIC:
    ??????????????
    if (dateFlag)
    ????????????????????value
    = new ?java.text.SimpleDateFormat( " yyyy-MM-dd?HH:mm " ).format(cell.getDateCellValue());
    ????????????????
    else ? {
    // ????????????????????value=String.valueOf(cell.getNumericCellValue());
    ????????????????????value? = ? new ?DecimalFormat( " 0.########## " ).format(cell.getNumericCellValue());
    ????????????????}

    ????????????????
    break ;
    ????????????
    case ?HSSFCell.CELL_TYPE_ERROR:
    ????????????????value
    = String.valueOf(cell.getErrorCellValue());
    ????????????????
    break ;
    ????????????
    case ?HSSFCell.CELL_TYPE_FORMULA:
    ????????????
    case ?HSSFCell.CELL_TYPE_BLANK:?
    ????????????
    case ?HSSFCell.CELL_TYPE_STRING:
    ????????????????value
    = cell.getStringCellValue();
    ????????????????????
    if (DATE_CELL.equals(value))
    ????????????????????????dateCellNumber
    = cell.getCellNum();
    ????????????????
    break ;
    ????????}

    ????????
    return ?value;
    ????}

    ?

      到了現在實中應用當然不會這么簡單,此類庫的更多功能我們可以參考其API,在此將中附帶了API。

      參考:http://jakarta.apache.org

    posted on 2006-05-30 18:30 Jkallen 閱讀(5463) 評論(3)  編輯  收藏 所屬分類: JEE學習其它開源

    評論

    # re: 借第三方類型庫解析excel文件 2006-06-26 13:54 nina
    這個是java的嗎?
    你由南京郵電余的講座嗎?我沒找到呢!!  回復  更多評論
      

    # re: 借第三方類型庫解析excel文件 2006-06-29 10:50 nina
    呵呵,是嗎,我宿捨上不了網、
    你對java熟悉嗎?
    我有一個在vs 2003用的很好,但是在2005就用不了,也不知道到底哪裡沒調用,但是奇怪的是,窗口縮小時就調用了  回復  更多評論
      

    # re: 借第三方類型庫解析excel文件 2006-06-29 10:50 nina
    錯了,是javascript  回復  更多評論
      

    主站蜘蛛池模板: 免费人成再在线观看网站| 亚洲午夜在线电影| 亚洲人成网站在线播放2019| 日韩人妻无码精品久久免费一| 亚洲精品无码永久在线观看你懂的| 一级毛片a免费播放王色| 亚洲AV无码一区二区三区国产| 国产精品亚洲а∨无码播放麻豆 | 亚洲AV无码一区二区三区电影| 美女网站免费福利视频| 中文字幕亚洲码在线| 妞干网免费视频观看| 国产精品久久亚洲一区二区| 亚洲成人一区二区| 二区久久国产乱子伦免费精品| 亚洲熟妇av一区二区三区| 免费无码又爽又刺激高潮视频| 中文字幕亚洲免费无线观看日本| 人妻无码久久一区二区三区免费| 久久亚洲AV成人无码| aa级一级天堂片免费观看| 亚洲av日韩精品久久久久久a| 一本色道久久88亚洲综合 | 一二三四视频在线观看中文版免费| 亚洲日本VA午夜在线电影| 国产免费69成人精品视频| 无码日韩人妻AV一区免费l| 亚洲精品国产美女久久久| 69式互添免费视频| 国产亚洲人成在线播放| 久久久久久a亚洲欧洲aⅴ| 亚洲高清视频免费| 国产AV无码专区亚洲AV琪琪| 久久亚洲精品视频| 妞干网免费视频在线观看| 在线观看免费黄网站| 亚洲成年网站在线观看| 色噜噜AV亚洲色一区二区| 91精品视频免费| 国产午夜成人免费看片无遮挡| 国产v亚洲v天堂a无|