2016-06-27 12 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がで

例外: org.apache.poi.xssf.usermodel.XSSFWorkbook.validateSheetIndexにおけるシート インデックス(0)の範囲外である(..- 1 0) TestNG.readexcel.mainで org.apache.poi.xssf.usermodel.XSSFWorkbook.getSheetAt(XSSFWorkbook.java:834)で(XSSFWorkbook.java:1043) (readexcel.java:17)

+8

新しいブックを作成しています。それにはシートがありません。既存のファイルを実際にロードしていないことに注意してください。ストリームを開き、それを無視しています。 –

+0

私が正しく覚えていれば、XSSFWorkbook wrbk = new XSSFWorkbook(fis); – Orin

+0

ありがとう.....働いているような、コンストラクタ内の基礎となるストリームを持つ新しいワークブックを作成することができます – raaj

答えて

0

@ Orin2005のコメントは正しいです。 シートをアドレス指定する前に、シートを作成する必要があります。 これを行う方法の1つは次のとおりです。

XSSFWorkbook wrbk = new XSSFWorkbook(fis); 
関連する問題