XLSX в JPG конверсия в Java — распространённая необходимость, когда требуется отображать данные таблицы в виде изображений. GroupDocs.Conversion Cloud SDK for Java предлагает простую библиотеку на основе REST, позволяющую напрямую рендерить листы Excel в файлы JPG. Это руководство проведёт вас через необходимую настройку, покажет полный пример кода, продемонстрирует асинхронную обработку с помощью cURL и предоставит рекомендации по производительности при работе с большими рабочими книгами.

Шаги по конвертации XLSX в JPG в Java

  1. Добавить зависимость Maven: включите SDK в ваш pom.xml, чтобы библиотека была доступна во время компиляции.
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-conversion-cloud</artifactId>
    <version>23.12</version>
</dependency>
  1. Инициализировать клиент преобразования: Создайте экземпляр ConversionApi с вашими учетными данными клиента.
import com.groupdocs.conversion.cloud.api.ConversionApi;
import com.groupdocs.conversion.cloud.client.ApiClient;
import com.groupdocs.conversion.cloud.configuration.Configuration;

Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");

ConversionApi conversionApi = new ConversionApi(new ApiClient(config));
  1. Настройте параметры конвертации: Установите выходной формат в JPG, выберите разрешение и при желании включите асинхронную обработку.
import com.groupdocs.conversion.cloud.model.requests.ConvertDocumentRequest;
import com.groupdocs.conversion.cloud.model.ConvertOptions;
import com.groupdocs.conversion.cloud.model.JpgConvertOptions;

JpgConvertOptions jpgOptions = new JpgConvertOptions();
jpgOptions.setResolution(300);          // 300 DPI for high quality
jpgOptions.setQuality(90);              // JPEG quality 0‑100
jpgOptions.setAsync(true);              // Enable async conversion

ConvertOptions options = new ConvertOptions();
options.setOutputFormat("JPG");
options.setJpgOptions(jpgOptions);
  1. Выполнить преобразование: Создайте ConvertDocumentRequest с исходным файлом XLSX и параметрами, затем вызовите API.
import java.io.File;

File sourceFile = new File("sample.xlsx");
ConvertDocumentRequest request = new ConvertDocumentRequest(sourceFile, options);
String jobId = conversionApi.convertDocument(request);
System.out.println("Conversion started, job ID: " + jobId);
  1. Скачать результат: Опросите статус задания, пока оно не будет завершено, затем скачайте каждый сгенерированный JPG.
import com.groupdocs.conversion.cloud.model.JobStatus;
import com.groupdocs.conversion.cloud.model.responses.JobStatusResponse;

while (true) {
    JobStatusResponse statusResponse = conversionApi.getJobStatus(jobId);
    JobStatus status = statusResponse.getStatus();
    if (status == JobStatus.COMPLETED) break;
    Thread.sleep(2000); // wait 2 seconds before next poll
}
conversionApi.downloadResult(jobId, new File("output/"));
System.out.println("JPG files saved to output folder.");

Для получения более подробной информации об объектах запросов см. справка API.

Создание JPG из XLSX в Java — полный пример кода

Этот пример демонстрирует полное сквозное преобразование, которое загружает рабочую книгу XLSX, преобразует каждый лист в отдельный JPG и сохраняет изображения локально.

package com.example.conversion;

import com.groupdocs.conversion.cloud.api.ConversionApi;
import com.groupdocs.conversion.cloud.client.ApiClient;
import com.groupdocs.conversion.cloud.configuration.Configuration;
import com.groupdocs.conversion.cloud.model.requests.ConvertDocumentRequest;
import com.groupdocs.conversion.cloud.model.ConvertOptions;
import com.groupdocs.conversion.cloud.model.JpgConvertOptions;
import com.groupdocs.conversion.cloud.model.responses.JobStatusResponse;
import com.groupdocs.conversion.cloud.model.JobStatus;

import java.io.File;

public class XlsxToJpgDemo {
    public static void main(String[] args) throws Exception {
        // 1. Configure client
        Configuration config = new Configuration();
        config.setClientId("YOUR_CLIENT_ID");
        config.setClientSecret("YOUR_CLIENT_SECRET");
        ConversionApi api = new ConversionApi(new ApiClient(config));

// 2. Prepare conversion options
        JpgConvertOptions jpgOpts = new JpgConvertOptions();
        jpgOpts.setResolution(300);
        jpgOpts.setQuality(90);
        jpgOpts.setAsync(true); // async conversion

ConvertOptions convOpts = new ConvertOptions();
        convOpts.setOutputFormat("JPG");
        convOpts.setJpgOptions(jpgOpts);

// 3. Create request
        File source = new File("input/sample.xlsx");
        ConvertDocumentRequest request = new ConvertDocumentRequest(source, convOpts);

// 4. Start conversion
        String jobId = api.convertDocument(request);
        System.out.println("Job started, ID: " + jobId);

// 5. Wait for completion
        while (true) {
            JobStatusResponse statusResp = api.getJobStatus(jobId);
            if (statusResp.getStatus() == JobStatus.COMPLETED) break;
            Thread.sleep(2000);
        }

// 6. Download JPG files
        api.downloadResult(jobId, new File("output/"));
        System.out.println("Conversion finished. JPG files are in the output folder.");
    }
}

Примечание: Этот пример кода демонстрирует базовый функционал. Прежде чем использовать его в вашем проекте, убедитесь, что обновили пути к файлам (input/sample.xlsx, output/), чтобы они соответствовали вашим реальным расположениям, проверьте, что все необходимые зависимости правильно установлены, и тщательно протестируйте в вашей среде разработки. Если возникнут какие‑либо проблемы, обратитесь к официальной документации или свяжитесь с службой поддержки для получения помощи.

Преобразование Excel в изображение с помощью cURL

Следующие команды cURL демонстрируют, как выполнить ту же конверсию XLSX в JPG с использованием REST API. Замените заполнители реальными учетными данными и именами файлов.

  1. Получить токен доступа
curl -X POST "https://api.groupdocs.cloud/v1.0/oauth/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
  1. Загрузить файл XLSX
curl -X POST "https://api.groupdocs.cloud/v1.0/storage/file/upload" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@sample.xlsx"
  1. Запуск асинхронного преобразования
curl -X POST "https://api.groupdocs.cloud/v1.0/conversion/convert" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "sourceFilePath": "sample.xlsx",
           "outputFormat": "JPG",
           "options": {
               "resolution": 300,
               "quality": 90,
               "async": true
           }
         }'
  1. Check Job Status (replace JOB_ID with the value returned from the previous step)
curl -X GET "https://api.groupdocs.cloud/v1.0/conversion/jobs/JOB_ID/status" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
  1. Скачать полученные JPG‑файлы
curl -X GET "https://api.groupdocs.cloud/v1.0/conversion/jobs/JOB_ID/result" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.zip

Для полного списка параметров см. официальную документацию API.

Установка и настройка GroupDocs.Conversion Cloud SDK for Java

Добавьте SDK в ваш проект с помощью Maven, затем настройте учетные данные клиента.

# Add the dependency (already shown in the Steps section)
mvn install com.groupdocs:groupdocs-conversion-cloud
// Example configuration (same as in the Steps section)
Configuration config = new Configuration();
config.setClientId("YOUR_CLIENT_ID");
config.setClientSecret("YOUR_CLIENT_SECRET");

Вы можете скачать последние файлы JAR со страницы загрузки.

Параметры конвертации XLSX в JPG

Несколько параметров позволяют точно настроить сгенерированные изображения.

ОпцияОписаниеПример
РазрешениеDPI выходного изображения. Более высокие значения улучшают качество, но увеличивают размер файла.jpgOpts.setResolution(300);
КачествоУровень сжатия JPEG (0‑100).jpgOpts.setQuality(90);
Диапазон страницКонвертировать только определённые листы.jpgOpts.setPageRange("1-3");
АсинхронныйВыполнять конвертацию в фоновом режиме и опрашивать её завершение.jpgOpts.setAsync(true);

Каждое свойство является частью JpgConvertOptions в SDK. Обратитесь к справочнику API для полного списка.

Улучшение скорости конвертации и использования памяти

  1. Потоковая обработка листов - Обрабатывайте один лист за раз, включив асинхронный режим; это предотвращает загрузку всей книги в память.
  2. Регулировка разрешения - Используйте минимально приемлемое DPI для вашего случая; 150‑200 DPI обычно достаточно для веб‑просмотров.
  3. Пакетные запросы - При конвертации большого количества файлов отправляйте их параллельными пакетами, ограниченными возможностями CPU и сети вашего сервера.
  4. Повторное использование ApiClient - Создайте один экземпляр ConversionApi и используйте его для нескольких конвертаций, чтобы избежать повторных расходов на аутентификацию.

Применение этих советов может сократить время конвертации до 40 % для больших файлов Excel.

Заключение

Преобразование XLSX в JPG в Java становится простым с помощью GroupDocs.Conversion Cloud SDK for Java. Следуя описанным выше шагам, вы можете отобразить каждый лист как JPG высокого качества, использовать асинхронную обработку для лучшей масштабируемости и применять оптимизации производительности для больших книг. Не забудьте получить соответствующую лицензию для продакшн‑развертываний; детали ценообразования доступны на странице продукта, а для оценки библиотеки вы можете начать с временной лицензии. Интегрируйте эту возможность в свои приложения, чтобы предоставлять быстрые визуальные превью данных Excel без необходимости установки Office на клиенте.

Часто задаваемые вопросы

Как выполнить конвертацию XLSX в JPG в Java с использованием GroupDocs?
Используйте класс ConversionApi для загрузки файла XLSX, задайте JpgConvertOptions (разрешение, качество, асинхронность) и вызовите convertDocument. SDK возвращает идентификатор задания, который можно опрашивать, пока файлы JPG не будут готовы.

Могу ли я конвертировать большие книги Excel, не исчерпывая память?
Да. Включите асинхронное преобразование и задайте разумное разрешение. SDK обрабатывает листы последовательно, поддерживая низкое потребление памяти.

Поддерживается ли асинхронное преобразование XLSX в JPG?
SDK предоставляет флаг async в JpgConvertOptions. При установке в true API возвращает идентификатор задания, позволяя проверить статус и загрузить результаты позже.

Нужна ли специальная лицензия для использования функций конвертации в продакшн?
Для использования в продакшн требуется действительная лицензия GroupDocs.Conversion Cloud. Вы можете начать с временной лицензии со страницы временной лицензии перед покупкой полной подписки.

Читать дальше