2016-06-27 77 views
-6

我試圖訪問位於本地的Excel。以下是我的編碼。在Excel工作簿中創建工作表

public class readexcel { 
    public static void main(String[] args) throws Exception { 
     File readexcelfile = new File("S:\\Testing\\user.xlsx"); 
     FileInputStream fis = new FileInputStream(readexcelfile); 
     XSSFWorkbook wrbk = new XSSFWorkbook(); 
     XSSFSheet firstsheet0 = wrbk.getSheetAt(0); 
     String data0 = firstsheet0.getRow(0).getCell(0).getStringCellValue(); 
     System.out.println(data0); 

每當我運行上面的代碼,我得到下面的錯誤信息。

在線程異常 「主」 java.lang.IllegalArgumentException異常:表 索引(0)超出範圍(0 ..- 1) org.apache.poi.xssf.usermodel.XSSFWorkbook.validateSheetIndex (XSSFWorkbook.java:1043) 在 org.apache.poi.xssf.usermodel.XSSFWorkbook.getSheetAt(XSSFWorkbook.java:834) 在TestNG.readexcel.main(readexcel.java:17)

+8

您正在創建一個新的工作簿。那裏沒有任何紙張。請注意,您實際上並未加載現有文件...您正在打開一個流,然後忽略它。 –

+0

如果我沒有記錯,您可以在構造函數中使用基礎流創建新工作簿,例如'XSSFWorkbook wrbk = new XSSFWorkbook(fis);' – Orin

+0

謝謝..... working – raaj

回答

0

@ Orin2005評論是正確的。 在尋址工作表之前,您需要創建它。 要做到這一點的一種方法是:

XSSFWorkbook wrbk = new XSSFWorkbook(fis); 
相關問題