Невозможно преобразовать файл xlsx в xls с использованием documents4j

У меня есть тестовый пример, который требует загрузки файла Excel xlsx, записи данных в него, а затем сохранения его. Используя Apache Poi, я смог успешно это сделать. Но теперь мне нужен способ конвертировать этот файл в xls и загрузить текст в наше приложение.

Я использую documents4j, чтобы попытаться преобразовать файл из xlsx в xls. Но не удается создать файл xls. Поэтому, когда я запускаю свой тест, он не может найти файл, и сценарий завершается ошибкой.

import com.documents4j.api.DocumentType;
import com.documents4j.api.IConverter;
import com.documents4j.job.LocalConverter;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;

public class File_Converter {

    public static void convert_XLSX_To_XLS() throws InterruptedException, ExecutionException, IOException {
        File wordFile = new File("C:\\Users\\Jeff15\\Downloads\\scheduleUpload.xlsx"),
                target = new File("C:\\Users\\Jeff15\\Downloads\\scheduleUpload.xls");

        IConverter converter = LocalConverter.builder()
                .baseFolder(new File("C:\\Users\\Jeff15\\Downloads\\"))
                .workerPool(20, 25, 2, TimeUnit.SECONDS)
                .processTimeout(5, TimeUnit.SECONDS)
                .build();

        Future<Boolean> conversion = converter.convert(wordFile)
                .as(DocumentType.XLSX)
                .to(target)
                .as(DocumentType.XLS)
                // .prioritizeWith(1000) // optional
                .schedule();
    }
}

У меня есть следующие зависимости Maven:

documents4j-transformer-msoffice-base 1.0.3
documents4j-api 1.0.3
documents4j-util-conversion 1.0.3
documents4j-transformer-api 1.0.3
documents4j-util-all 1.0.3
documents4j-local 1.0.3
documents4j-util-ws 1.0.3
documents4j-util-standalone 1.0.3
documents4j-transformer-msoffice-excel 1.0.3
documents4j-test 1.0.3
documents4j-transformer-msoffice-test 1.0.3
documents4j-transformer-msoffice 1.0.3
documents4j-aggregation 1.0.3

Я не получаю никаких соответствующих ошибок. Сценарий завершается ошибкой, когда не удается найти файл xls, а затем нажать кнопку "Загрузить".

[main] INFO com.documents4j.conversion.msoffice.MicrosoftExcelBridge - From-Microsoft-Excel-Converter was started successfully
[main] INFO com.documents4j.job.LocalConverter - The documents4j local converter has started successfully
[pool-1-thread-1] INFO com.documents4j.conversion.msoffice.MicrosoftExcelBridge - Requested conversion from C:\Users\Jeff15\Downloads\scheduleUpload.xlsx (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) to C:\Users\Jeff15\Downloads\scheduleUpload.xls (application/vnd.ms-excel)
FAILED: Schedule_xls_File_Upload_Test
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//button[text()='Upload']"}

1 ответ

Кажется, это ошибка для понижения версии файла Excel. Я проверил и обнаружил, что мы можем перейти с XLS на XLSX, но обратное не сработало. Я рекомендую использовать apache poi для конвертирования форматов. надеюсь, что это будет полезно для вас.

Другие вопросы по тегам