Вам нужно использовать xmlbeans-3.0.1
вместо xmlbeans-5.1.3
.
Начиная с ошибки, которая была:
Caused by: java.lang.NoSuchMethodError: org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTWorksheetImpl.generatedSetterHelperImpl(Lorg/apache/xmlbeans/XmlObject;Ljavax/xml/namespace/QName;IS)Lorg/apache/xmlbeans/XmlObject;
Я искал в центральном репозитории Maven файлы, содержащие классCTWorksheetImpl
: https://search.maven.org/search?q=fc:org.openxmlformats.schemas.spreadsheetml.x2006.main.impl.CTWorksheetImpl
Ответ был poi-ooxml-schemas
, который у вас уже был, и был такой же версией, как poi
.Казалось, хорошо.Тогда я подумал, что это должен быть сам метод.Параметры были из пакета org.apache.xmlbeans
, поэтому версия xmlbeans
была, вероятно, неправильной.
Как узнать правильную версию?
Вместо того, чтобы собирать файлы JAR вручную, вы можетехочу попробовать Maven для управления зависимостями.В проекте Maven достаточно было бы сказать, что вы хотите poi-ooxml
.Это автоматически внесет все зависимости, рекурсивно, с правильными версиями.
Это пример файла Maven pom.xml
, который вы можете использовать в своем проекте:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>poi-example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Даже если вы неЕсли вы не хотите (или не можете) использовать Maven в своем проекте, вы можете, по крайней мере, создать отдельный проект только для выяснения зависимостей, как я.