上次打過一篇動態產生檔案
這次來打一篇如何讀取檔案
應該也是這陣子最後一篇吧
當兵去了~
首先先建立一個excel檔案用來讀取
我先建立一個test.xls檔案來做測試
以下是裡面的內容
要讀取的話也是非常容易
首先
1.指定Workbook
就是指定要打開哪份文件檔
Workbook workbook = Workbook.getWorkbook(new File("test.xls"));
2. 指定Sheet
就是指定要讀取哪個Sheet
Sheet sheet = workbook.getSheet("Sheet1");
3.取得Cell中的資料
指定要讀取哪一個位置的資料
sheet.getCell(0, 1).getContents();
拿(0,1)在這份資料來說
會讀出2
4.關閉文件
workbook.close();
讀取就是這麼簡單
再介紹兩個常用的方法
讀出文件有幾列
sheet.getColumns()
讀出文件有幾行
sheet.getRows()
拿這份文件來說
分別是
sheet.getColumns() = 2
sheet.getRows() = 7
讀取也就這麼容易~
附上程式碼
import java.io.IOException;
import java.io.File;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class test {
public static void main(String[] arge) {
try {
Workbook workbook = Workbook.getWorkbook(new File("test.xls"));
Sheet sheet = workbook.getSheet("Sheet1");
System.out.println(sheet.getCell(0, 1).getContents());
System.out.println(sheet.getColumns());
System.out.println(sheet.getRows());
workbook.close();
} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

*****
*****
版主 最近在學習如何將office檔案會入java中 網路找到用poi 跟 jxl 兩種方法我都試驗過 總是會出現下面的訊息無法執行 # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (classFileParser.cpp:3494), pid=1560, tid=200 # Error: ShouldNotReachHere() # # JRE version: 6.0_29-b11 # Java VM: Java HotSpot(TM) Client VM (20.4-b02 mixed mode windows-x86 ) # An error report file with more information is saved as: # C:\Documents and Settings\yen\workspace\poi\hs_err_pid1560.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # 卡了好久了 版主能幫我解惑嗎?
有code跟檔案可以看嗎?? 這樣我實在看不太出來耶
http://blog.csdn.net/shuwei003/article/details/6741649 像裡面code還有其他網路參考的code包括你寫的都是有關讀取excel檔 run下去之後都產生一樣的問題,我是寫android這部分的 我猜應該不是code的問題 新手剛學 謝謝版主指導
沒有寫過Android... 我只能幫你找看看,但是我想我找的你應該都試過了
我是想在手機裡做一個像示波器的東西 可以將值讀取進去畫出來 畫的部分練習後大致ok 前面將值丟進去一直沒頭緒
http://bit.ly/rZLZlw http://bit.ly/vpGuz2 試著做做看吧,我也不太清楚~"~
大概知道問題點了 我再試試 謝謝 版主幫忙
沒幫到什麼,呵呵,加油啦~
版主,我有個問題關於我複製您的程式來執行,可是我發現會有 Exception in thread "main" java.lang.NullPointerException 在System.out.println(sheet.getCell(0, 1).getContents()) 這一段出現錯誤,無法執行,請問這是為什麼? 我是使用netbeans
你的原檔XLS裡面有Sheet1嗎?
Sheet sheet = workbook.getSheet("Sheet1"); 改成 Sheet sheet = workbook.getSheet(0); 就沒這個問題了 不知道為什麼
現在手邊沒東西 但我猜是你的xls檔案中沒有Sheet1這個名字吧 所以用index來拿就沒問題了
Sheet sheet = workbook.getSheet("Sheet1"); 改成 Sheet sheet = workbook.getSheet(0); 是代表選取預設第一張表,如果你改成1 就變成第二張表。
private File dataBase = null; private Workbook workbook = null; dataBase = new File("檔案路徑"); workbook = Workbook.getWorkbook(dataBase); 您好, 我想請問, 我用上述方式開檔, 但在getWorkbook()此API 會卡非常久, 檔案大是其中原因之一, 但是否有解法?
是否要考慮另一套呢POI