2013-08-16 28 views
5

javaを使用して.xlsxファイルからファイルを読み取ろうとしています。しかし、私はまだエラーが発生します。 HSSFXSSFに修正しましたので、2007年版のExcelを読むことができます。ブックをインスタンス化するとき、コードがクラッシュします。すべてがインポートされるよう はそうと、私は間違っていただきました!見当がつかない:ここjavaを使用してexcelファイル.xlsxから読み取りApache POI 3.9 Eclipse

package excelread; 

import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import org.apache.poi.xssf.usermodel.XSSFCell; 
import org.apache.poi.xssf.usermodel.XSSFRow; 
import org.apache.poi.xssf.usermodel.XSSFSheet; 
import org.apache.poi.xssf.usermodel.XSSFWorkbook; 

public class ReadExcel { 

    /** 
    * @param args 
    * @throws IOException 
    */ 
    public static void main(String[] args) throws IOException { 
     // TODO Auto-generated method stub 
     File excel = new File ("C:/Users/Leah-Dina/Desktop/LogFile.xlsx"); 
     FileInputStream fis = new FileInputStream(excel); 
     XSSFWorkbook wb = new XSSFWorkbook(fis); 
     XSSFSheet ws = wb.getSheet("Input"); 

     int rowNum = ws.getLastRowNum() + 1; 
     int colNum = ws.getRow(0).getLastCellNum(); 
     String [][] data = new String [rowNum] [colNum]; 

     for(int i = 0; i <rowNum; i++){ 
      XSSFRow row = ws.getRow(i); 
       for (int j = 0; j < colNum; j++){ 
        XSSFCell cell = row.getCell(j); 
        String value = cell.toString(); 
        data[i][j] = value; 
        System.out.println ("the value is " + value); 
       } 
     } 

    } 
} 

あなたは私が取得エラーメッセージを見ることができます:ここではコードです。

Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentException 
     at org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:154) 
     at org.apache.poi.openxml4j.opc.OPCPackage.<init>(OPCPackage.java:141) 
     at org.apache.poi.openxml4j.opc.Package.<init>(Package.java:54) 
     at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:82) 
     at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:267) 
     at org.apache.poi.util.PackageHelper.open(PackageHelper.java:39) 
     at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:204) 
     at excelread.ReadExcel.main(ReadExcel.java:21) 
    Caused by: java.lang.ClassNotFoundException: org.dom4j.DocumentException 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     ... 8 more 

答えて

10

まず、Apache POIが依存するすべてのライブラリがクラスパス上にあることを確認します。この場合、確かにDom4Jがありません(dom4j-1.6.1.jar)。 stax-api-1.0.1.jar、xmlbeans-2.3.0.jar、poi-ooxml-schemas-3.9.jarなど、他のライブラリがない可能性があります。すべての必要なライブラリは、Apache POI websiteからダウンロード可能なディストリビューションに含まれています。

XSSFWorkbook wb = new XSSFWorkbook(fis); 

は、だからあなたのスプレッドシートに問題がある可能性があり:

ライン21は、この行のように見えます。 Dom4Jをクラスパス上に置くと、DocumentExceptionが作成されるだけですが、うまくいけば、スプレッドシートに何が本当に間違っているのかが分かります。

+0

のdom4j-1.6.1.jarファイルを含める必要があり、私は実際にいくつかのライブラリがありませんでした、ありがとうございます。私は彼らが別のフォルダにあることを知らなかった。これまでのところ助けになった。 Thanx)) – Jenny

0

eclipse IDEで作業している場合は、poi libsをweb-inf libディレクトリに貼り付けてください。

関連する問題