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

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

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

    zhyiwww
    用平實的筆,記錄編程路上的點點滴滴………
    posts - 536,comments - 394,trackbacks - 0

    用apache POI 操作 Excel有幾個關鍵的地方:

    [1]讀文件流
    這個問題是一個IO問題
    InputStream in = new FileInputStream("/tmp/aaa.xls");

    [2]如何取得Excel的操作對象
    這個也就相當于,Excel的工作區,在這個里面你可以取得當前excel文件的相關信息
    ??? ??? ??? ??? POIFSFileSystem poifs = new POIFSFileSystem(fis);
    ??? ??? ??? ??? HSSFWorkbook wb = new HSSFWorkbook(poifs);

    HSSFWorkbook 對象,是我們最想得到的對象。
    以后的所有操作都是從這里開始的。

    [3]如何取得sheet的數目

    wb.getNumberOfSheets()

    [4]如何根據index取得sheet對象

    ??? ??? HSSFSheet sheet = wb.getSheetAt(0);

    有了Sheet就相當于取得了一張表一樣。


    [5]如何取得有效的行數

    ??? ??? int rowcount = sheet.getLastRowNum();

    [6]如何根據index取得行對象

    HSSFRow row = sheet.getRow(i);

    有了行對象,就可以取得每一個單元對象

    [7]如何知道一個行有多少個單元
    colcount = row.getLastCellNum();


    [8]如何取得一個單元對象

    HSSFCell cell = row.getCell(j);

    [9]如何取得單元的值
    此處僅以字符串為例
    ??? ??? ??? ??? ??? if(cell!=null){
    ??? ??? ??? ??? ??? ??? ??? ??? System.out.println("cell is: "+cell.getStringCellValue());
    ??? ??? ??? ??? ??? ??? ??? }

    下面是我的測試的完整的程序。我也是從網上找的資料,然后自己又做了測試。在此又做了整理。
    感謝網上提供此參考資料的朋友。

    package demo.excel;


    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;

    import org.apache.poi.hssf.eventusermodel.HSSFRequest;
    import org.apache.poi.hssf.model.Sheet;
    import org.apache.poi.hssf.model.Workbook;
    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;

    public class ExcelDemo {

    ??? public static void main(String[] args) {

    ??? ??? File f = new File("/home/zhangyi/dell500.xls");

    ??? ??? if (f.exists()) {

    ??? ??? ??? // read
    ??? ??? ??? try {
    ??? ??? ??? ??? InputStream fis = new FileInputStream(f);

    ??? ??? ??? ??? POIFSFileSystem poifs = new POIFSFileSystem(fis);
    ??? ??? ??? ??? HSSFWorkbook wb = new HSSFWorkbook(poifs);

    ??? ??? ??? ??? List retList = new ArrayList();

    ??? ??? ??? ??? System.out.println("sheet number : " + wb.getNumberOfSheets());
    ??? ??? ??? ???
    ??? ??? ??? ???
    ??? ??? ??? ??? HSSFSheet s = wb.getSheetAt(0);
    ??? ??? ??? ??? System.out.println("sheet obj is : "+s);
    ??? ??? ??? ???
    ??? ??? ??? ???
    ??? ??? ??? ???
    ??? ??? ??? ???
    ??? ??? ??? ??? for (int h = 0; h < wb.getNumberOfSheets(); ++h) {
    ??? ??? ??? ??? ??? List list = new ArrayList();

    ??? ??? ??? ??? ??? HSSFSheet sheet = wb.getSheetAt(h);
    ??? ??? ??? ??? ??? int rowcount = sheet.getLastRowNum();
    ??? ??? ??? ??? ??? rowcount++;
    ??? ??? ??? ??? ??? System.out.print("-----sheet[" + h + "]: row count = "
    ??? ??? ??? ??? ??? ??? ??? + rowcount);

    ??? ??? ??? ??? ???
    ??? ??? ??? ??? ??? int colcount = 0;
    ??? ??? ??? ??? ??? for (int i = 0; i < rowcount; ++i) {
    ??? ??? ??? ??? ??? ??? HSSFRow row = sheet.getRow(i); // i=0 indicate the first
    ??? ??? ??? ??? ???
    ??? ??? ??? ??? ??? ??? // row
    ??? ??? ??? ??? ??? ??? if (row == null)
    ??? ??? ??? ??? ??? ??? ??? continue; // without the row, break and continue;
    ??? ??? ??? ??? ??? ???
    ??? ??? ??? ??? ??? ??? if (colcount == 0) { // colunm count set to column of
    ??? ??? ??? ??? ??? ??? ??? // the first effective row
    ??? ??? ??? ??? ??? ??? ??? colcount = row.getLastCellNum();
    ??? ??? ??? ??? ??? ??? ??? System.out.println(", column count = " + colcount);
    ??? ??? ??? ??? ??? ??? }

    ??? ??? ??? ??? ??? ??? String[] fieldValue = new String[colcount];
    ??? ??? ??? ??? ??? ???
    ??? ??? ??? ??? ??? ??? for (short j = 0; j < colcount; ++j) { // column data in
    ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? // the current

    ??? ??? ??? ??? ??? ??? ??? HSSFCell cell = row.getCell(j);
    ??? ??? ??? ??? ??? ??? ??? // fieldValue[j] = getCellStringValue(cell);
    ??? ??? ??? ??? ??? ??? ??? if(cell!=null){
    ??? ??? ??? ??? ??? ??? ??? ??? System.out.println("cell is: "+cell.getStringCellValue());
    ??? ??? ??? ??? ??? ??? ??? }
    //??? ??? ??? ??? ??? ??? ??? System.out.println("cell is : " +cell.getCellComment());
    ??? ??? ??? ??? ??? ??? ???
    ??? ??? ??? ??? ??? ??? }

    ??? ??? ??? ??? ??? ??? list.add(fieldValue);
    ??? ??? ??? ??? ??? }

    ??? ??? ??? ??? ??? retList.add(list);
    ??? ??? ??? ??? }

    ??? ??? ??? } catch (FileNotFoundException e) {
    ??? ??? ??? ??? // TODO Auto-generated catch block
    ??? ??? ??? ??? e.printStackTrace();
    ??? ??? ??? } catch (IOException e) {
    ??? ??? ??? ??? // TODO Auto-generated catch block
    ??? ??? ??? ??? e.printStackTrace();
    ??? ??? ??? }

    ??? ??? }

    ??? }

    }




    |----------------------------------------------------------------------------------------|
                               版權聲明  版權所有 @zhyiwww
                引用請注明來源 http://m.tkk7.com/zhyiwww   
    |----------------------------------------------------------------------------------------|
    posted on 2009-06-24 16:10 zhyiwww 閱讀(671) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲一区二区三区久久| 免费jjzz在线播放国产| 国产亚洲精品美女久久久| h在线看免费视频网站男男| 亚洲国产精品综合久久一线| 亚洲欧美国产精品专区久久| 夜夜嘿视频免费看| 亚洲精品永久在线观看| 国产成人一区二区三区免费视频| 亚洲精品国产精品| 免费永久在线观看黄网站| 视频免费1区二区三区| 久久国产成人亚洲精品影院| 日韩精品无码免费专区午夜| 国产亚洲精品岁国产微拍精品| 日韩精品无码免费专区午夜 | 人妻免费一区二区三区最新| 国产亚洲精品激情都市| 免费日本一区二区| 亚洲精品在线视频观看| 成年女人看片免费视频播放器| 亚洲色大成网站www永久网站 | 国产性爱在线观看亚洲黄色一级片 | 青娱乐免费在线视频| 色老板亚洲视频免在线观| 日本最新免费不卡二区在线| 四虎国产精品成人免费久久| 亚洲国产成人片在线观看| 中文字幕免费在线看线人| mm1313亚洲国产精品无码试看| 亚洲最大av无码网址| 91热久久免费精品99| 色窝窝亚洲av网| 亚洲国产精品无码久久一线| 老司机在线免费视频| 窝窝影视午夜看片免费| 亚洲黑人嫩小videos| 又色又污又黄无遮挡的免费视 | 亚洲国产美女精品久久久久∴| 91精品免费不卡在线观看| 337P日本欧洲亚洲大胆精品|