2011-11-20 6 views
18

Tôi muốn sử dụng thư viện Apache POI để phân tích các tệp excel (phiên bản cũ và các phiên bản mới hơn của excel). Vì vậy, tôi đã tự hỏi những gì lọ để tôi cần phải bao gồm từ Apache POI bởi vì trong đường dẫn sau:Yêu cầu phụ thuộc maven cho Apache POI để làm việc

http://mvnrepository.com/artifact/org.apache.poi

tôi thấy rất nhiều lọ để được bao gồm, tôi cần phải bao gồm tất cả chúng?

Nếu có, phiên bản ổn định mới nhất sẽ được bao gồm là gì và nó có hoạt động với Office 2010 của Microsoft không?

Trả lời

31

Không, bạn không phải bao gồm tất cả các phụ thuộc của POI. Cơ chế phụ thuộc chuyển tiếp của Maven sẽ chăm sóc điều đó. Là noted bạn chỉ cần thể hiện sự phụ thuộc vào tạo phẩm POI thích hợp. Ví dụ:

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

Đối với một nhà văn excel bạn có thể cần những điều sau đây:

  <dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>poi</artifactId> 
       <version>3.10-FINAL</version> 
      </dependency> 


     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi-ooxml</artifactId> 
      <version>${apache.poi.version}</version> 
     </dependency> 
-2

OOXML đối phó các tập tin .xlsx và OOXML đề cập đến xml, vì thế chúng tôi sẽ là cần thiết để tham khảo các dưới ba dependedncies trong pom.xml cho

<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>3.9</version> 
</dependency> 
<dependency> 
    <groupId>xml-apis</groupId> 
    <artifactId>xml-apis</artifactId> 
    <version>1.4.01</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi-ooxml</artifactId> 
    <version>3.9</version> 
    <exclusions> 
    <exclusion> 
     <artifactId>xml-apis</artifactId> 
     <groupId>xml-apis</groupId> 
    </exclusion>  
    </exclusions> 
</dependency> 
0

Nếu bạn không sử dụng maven, sau đó bạn sẽ cần **

  • poi
  • poi-OOXML
  • XMLBeans
  • dom4j
  • poi-OOXML-schemas
  • Stax-api
  • ooxml-schemas
+0

Các jar Stax-api và dom4j jar không cần thiết trên phiên bản mới nhất của Apache POI (3.11), do đó, điều này không phải lúc nào cũng đúng – Gagravarr

1

Tôi đã sử dụng phụ thuộc dưới đây. Nếu bạn đang sử dụng Selenium thì tốt nhất nên sử dụng tất cả chúng như dưới đây. Khác bạn sẽ thấy một số lỗi và sau đó làm các reserch và thêm một số phụ thuộc nhiều hơn nữa.

<dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>poi</artifactId> 
       <version>3.9</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>poi-ooxml</artifactId> 
       <version>3.9</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>poi-ooxml-schemas</artifactId> 
       <version>3.9</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>poi-scratchpad</artifactId> 
       <version>3.9</version> 
      </dependency> 
      <dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>ooxml-schemas</artifactId> 
       <version>1.1</version> 
      </dependency> 

      <dependency> 
       <groupId>org.apache.poi</groupId> 
       <artifactId>openxml4j</artifactId> 
       <version>1.0-beta</version> 
      </dependency> 
+1

Apache POI 3.9 khá cũ, tại sao bạn đề xuất mọi người sử dụng? Và sự phụ thuộc 'openxml4j' không cần thiết trong những ngày này – Gagravarr

+0

không thể làm cho con quạ trong nhật thực nhận ra bất kỳ phiên bản nào cao cấp hơn 3.9. thường thì nó hoàn thành công việc. Ngoài ra nó là vô lý để thêm 6-7 phụ thuộc cho một cái gì đó được cho là để giải quyết tất cả các phụ thuộc cho một thư viện – Leo

0
<dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-ooxml</artifactId> 
     <version>3.10-FINAL</version> 
    </dependency> 
+0

Tại sao bạn đề xuất một phiên bản cũ? Chắc chắn 3,11, phiên bản ổn định mới nhất, sẽ tốt hơn? – Gagravarr

+0

cảm ơn bạn! bạn đúng rồi! –

0

Thêm sự phụ thuộc này để làm việc với Apache POI

<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>3.16-beta1</version> 
</dependency> 
1

Các công trình sau đây cho tôi:

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> 
    <dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi</artifactId> 
     <version>3.16</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --> 
    <dependency> 
     <groupId>org.apache.poi</groupId> 
     <artifactId>poi-ooxml</artifactId> 
     <version>3.16</version> 
    </dependency> 
+0

Nên sử dụng cùng phiên bản "poi" và "poi-ooxml" –