2012-04-26 49 views
10

Tôi đang sử dụng apache POI để đọc xlsx file bằng cách thêm dưới đây phụ thuộcapache POI ngoại lệ trong file xlsx đọc

<dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi-ooxml</artifactId> 
      <version>3.8</version> 
     </dependency> 

<dependency> 
      <groupId>org.apache.xmlbeans</groupId> 
      <artifactId>xmlbeans</artifactId> 
      <version>2.5.0</version> 
     </dependency> 

tôi nhận được sau khi chạy ngoại lệ với plugin cầu cảng thậm chí nếu được triển khai trong tomcat.

org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException 
    at org.apache.poi.xssf.usermodel.XSSFFactory.createDocumentPart(XSSFFactory.java:62) 
    at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:403) 
    at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155) 
...... 

Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
........... 
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.openxmlformats.schemas.spreadsheetml.x2006.main.StyleSheetDocument 
    at org.openxmlformats.schemas.spreadsheetml.x2006.main.StyleSheetDocument$Factory.parse(Unknown Source) 
    at org.apache.poi.xssf.model.StylesTable.readFrom(StylesTable.java:121) 
    at org.apache.poi.xssf.model.StylesTable.<init>(StylesTable.java:92) 
    ... 186 more 

Tôi đã xóa phụ thuộc xmlbeans làm maven sẽ tự động tải xuống phụ thuộc poi, vẫn là ngoại lệ tương tự.Bất kỳ trợ giúp nào?

+0

Cũng đã nhận lỗi này sử dụng '3.11' và '3.12 beta' – Guus

+2

Bạn hãy thử [đọc FAQ entry Apache POI về chủ đề này] (http://poi.apache.org/faq.html#faq-N10025)? – Gagravarr

Trả lời

0

tôi sử dụng 3.7 nhưng có bạn cố gắng thêm

<dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-ooxml-schemas</artifactId> 
     <version>3.8</version> 
    </dependency> 
+0

Nhận ngoại lệ tương tự ngay cả sau khi thêm sự phụ thuộc này, thậm chí tôi đã thử phiên bản 3.7 nhưng vô ích. – pavan

+0

Đối với 3.7, tôi có nó làm việc với poi-3.7, poi-ooxml-3.7, poi-ooxml-schemas-3.7, xmlbeans-2.3.0, geronimo_stax_api_1.0 và dom4j-1.6.1 –

+0

Ngay cả sau khi thêm tất cả các phụ thuộc bạn đã đề cập cùng một ngoại lệ. – pavan

4

tôi đã làm cho nó chạy cho các phụ thuộc:

 

    def poiVersion='3.9' 
    compile 'org.apache.poi:poi:'+poiVersion 
    compile 'org.apache.poi:poi-ooxml:'+poiVersion 
    compile 'org.apache.poi:poi-ooxml-schemas:'+poiVersion 

Khi tôi cố gắng cho những người khác nó không hoạt động:

3.10 : không được biết là maven central

3.11: không thành công, với lỗi chính xác trong trường hợp này !!!

Kết luận POI 3.9 hoạt động !!!!

+2

Tôi đang thất bại với cùng một lỗi và có cùng trải nghiệm khi điều chỉnh phiên bản, ngoại trừ "My ClassNotFound'" của tôi là 'org.openxmlformats.schemas.spreadsheetml.x2006.main.CTExtensionList'. Có ai biết nếu điều này được báo cáo là một lỗi trong 'poi-ooxml' 3.11? – BalRog

+0

câu trả lời này là gây hiểu lầm của nó không phải là poi 3,12 bị hỏng, bạn cần phải bao gồm phụ thuộc đầy đủ ooxml-schemas. Lưu ý có hai lọ được đặt tên tương tự. xem câu trả lời của Aliaksandr Pyrkh bên dưới. – mzzzzb

15

Tôi đã sử dụng poi với phiên bản 3.12. Phụ thuộc sau đây cũng được yêu cầu:

compile 'org.apache.poi:ooxml-schemas:1.1'

cũng thấy http://poi.apache.org/faq.html#faq-N10025

+0

Từ liên kết: Có hai tệp jar có sẵn. Jar đầy đủ của tất cả các lược đồ là ooxml-schemas-1.x.jar và jar poi-ooxml-schemas nhỏ hơn chỉ khoảng 4mb. Tệp jar sau này chỉ chứa các phần thường được sử dụng. – mzzzzb

+0

phiên bản mới nhất: http://search.maven.org/#artifactdetails%7Corg.apache.poi%7Cooxml-schemas%7C1.3%7Cjar – slim

Các vấn đề liên quan