XLSX в JPG конверсия в Java — распространённая необходимость, когда требуется отображать данные таблицы в виде изображений. GroupDocs.Conversion Cloud SDK for Java предлагает простую библиотеку на основе REST, позволяющую напрямую рендерить листы Excel в файлы JPG. Это руководство проведёт вас через необходимую настройку, покажет полный пример кода, продемонстрирует асинхронную обработку с помощью cURL и предоставит рекомендации по производительности при работе с большими рабочими книгами.
Шаги по конвертации XLSX в JPG в Java
- Добавить зависимость Maven: включите SDK в ваш
pom.xml, чтобы библиотека была доступна во время компиляции.
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-conversion-cloud</artifactId>
<version>23.12</version>
</dependency>
- Инициализировать клиент преобразования: Создайте экземпляр
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));
- Настройте параметры конвертации: Установите выходной формат в 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);
- Выполнить преобразование: Создайте
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);
- Скачать результат: Опросите статус задания, пока оно не будет завершено, затем скачайте каждый сгенерированный 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. Замените заполнители реальными учетными данными и именами файлов.
- Получить токен доступа
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"}'
- Загрузить файл XLSX
curl -X POST "https://api.groupdocs.cloud/v1.0/storage/file/upload" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@sample.xlsx"
- Запуск асинхронного преобразования
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
}
}'
- Check Job Status (replace
JOB_IDwith 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"
- Скачать полученные 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 для полного списка.
Улучшение скорости конвертации и использования памяти
- Потоковая обработка листов - Обрабатывайте один лист за раз, включив асинхронный режим; это предотвращает загрузку всей книги в память.
- Регулировка разрешения - Используйте минимально приемлемое DPI для вашего случая; 150‑200 DPI обычно достаточно для веб‑просмотров.
- Пакетные запросы - При конвертации большого количества файлов отправляйте их параллельными пакетами, ограниченными возможностями CPU и сети вашего сервера.
- Повторное использование 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. Вы можете начать с временной лицензии со страницы временной лицензии перед покупкой полной подписки.
