CSV в XLSX конверсия в Java часто требуется, когда приложениям необходимо обмениваться данными с пользователями Excel. Aspose.HTML Cloud SDK for Java предоставляет мощный облачный API, который эффективно обрабатывает эту трансформацию. В этом руководстве вы увидите, как настроить зависимость Maven, читать данные CSV с помощью потоков, создавать рабочую книгу XLSX и вызывать конверсию через REST API. К концу у вас будет полностью готовый, готовый к продакшену пример, который вы сможете адаптировать к своим проектам.

Предварительные требования и настройка

Прежде чем начать, убедитесь, что у вас есть следующее:

  • Установлен Java 17 или более новая версия.
  • Учётная запись Aspose Cloud с идентификатором клиента и секретом клиента.
  • Установлен Maven для управления зависимостями.

Добавьте Aspose.HTML Cloud SDK for Java в ваш проект:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-html-cloud</artifactId>
    <version>23.12</version>
</dependency>

В качестве альтернативы вы можете установить пакет напрямую из командной строки:

mvn install com.aspose:aspose-html-cloud

Скачайте последние бинарные файлы SDK со страницы загрузки. После того как зависимость будет разрешена, вы готовы приступить к кодированию. Следующий раздел пошагово проведёт вас через реализацию.

Преобразование CSV в XLSX в Java: пошаговое руководство

Шаг 1: Загрузка исходного CSV с использованием Java Streams

Чтение CSV построчно сохраняет низкое использование памяти, что особенно важно для больших файлов.

Path csvPath = Paths.get("input.csv");
List<String> csvLines = Files.readAllLines(csvPath, StandardCharsets.UTF_8);

Шаг 2: Инициализировать клиент Aspose.HTML Cloud

Создайте экземпляр клиента с вашими учётными данными. Класс клиента задокументирован в API справка.

HtmlApi htmlApi = new HtmlApi();
htmlApi.getConfiguration().setClientId("YOUR_CLIENT_ID");
htmlApi.getConfiguration().setClientSecret("YOUR_CLIENT_SECRET");

Шаг 3: Преобразовать содержимое CSV в XLSX

SDK принимает данные CSV в виде строки и возвращает бинарный поток XLSX.

String csvContent = String.join("\n", csvLines);
ConvertDocumentRequest request = new ConvertDocumentRequest()
        .outputFormat("xlsx")
        .inputFileContent(csvContent.getBytes(StandardCharsets.UTF_8));
byte[] xlsxBytes = htmlApi.convertDocument(request);

Шаг 4: Сохранить полученный файл XLSX

Запишите возвращаемый массив байтов в файл на диске.

Path xlsxPath = Paths.get("output.xlsx");
Files.write(xlsxPath, xlsxBytes);

Шаг 5: Проверка конвертации (необязательно)

Вы можете быстро открыть сгенерированный файл с помощью Apache POI или любого просмотрщика электронных таблиц, чтобы убедиться, что данные отформатированы правильно.

Полный пример кода: преобразование CSV в XLSX с помощью Aspose.HTML Cloud SDK

Следующая программа объединяет все шаги в один исполняемый класс.

import java.nio.file.*;
import java.nio.charset.StandardCharsets;
import java.util.List;
import com.aspose.html.cloud.api.HtmlApi;
import com.aspose.html.cloud.model.ConvertDocumentRequest;

public class CsvToXlsxConverter {
    public static void main(String[] args) throws Exception {
        // 1. Load CSV file
        Path csvPath = Paths.get("input.csv");
        List<String> csvLines = Files.readAllLines(csvPath, StandardCharsets.UTF_8);
        String csvContent = String.join("\n", csvLines);

// 2. Initialise Aspose.HTML Cloud client
        HtmlApi htmlApi = new HtmlApi();
        htmlApi.getConfiguration().setClientId("YOUR_CLIENT_ID");
        htmlApi.getConfiguration().setClientSecret("YOUR_CLIENT_SECRET");

// 3. Convert CSV to XLSX
        ConvertDocumentRequest request = new ConvertDocumentRequest()
                .outputFormat("xlsx")
                .inputFileContent(csvContent.getBytes(StandardCharsets.UTF_8));
        byte[] xlsxBytes = htmlApi.convertDocument(request);

// 4. Save XLSX file
        Path xlsxPath = Paths.get("output.xlsx");
        Files.write(xlsxPath, xlsxBytes);

System.out.println("Conversion completed. XLSX saved to " + xlsxPath.toAbsolutePath());
    }
}

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

Использование cURL для вызова Aspose.HTML Cloud для генерации XLSX

Тот же процесс конвертации можно выполнить через REST API. Ниже приведены необходимые команды cURL.

  1. Аутентификация и получение токена доступа
curl -X POST "https://api.aspose.cloud/connect/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"

Ответ содержит access_token, который вы будете использовать в последующих вызовах.

  1. Загрузите CSV‑файл
curl -X POST "https://api.aspose.cloud/v4.0/html/storage/file/input.csv" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -F "file=@input.csv"
  1. Выполнить преобразование
curl -X POST "https://api.aspose.cloud/v4.0/html/convert?outputFormat=xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"inputPath":"input.csv"}' \
     -o output.xlsx
  1. Скачать файл XLSX (если вы выбрали другое место вывода)
curl -X GET "https://api.aspose.cloud/v4.0/html/storage/file/output.xlsx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o output.xlsx

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

Соображения по производительности при конвертации больших CSV в XLSX

  • Потоковая обработка CSV‑ввода - Используйте Files.lines или буферизованный читатель, чтобы обрабатывать строки по одной, а не загружать весь файл в память.
  • Пакетные загрузки - При работе с файлами размером более 100 МБ разбейте CSV на более мелкие части и конвертируйте каждую часть отдельно, затем при необходимости объедините полученные части XLSX.
  • Включить асинхронную конвертацию - Добавьте параметр запроса async=true к запросу конвертации, чтобы облачный сервис обрабатывал файл в фоновом режиме, уменьшая время ожидания на клиенте.
  • Настроить параметры вывода - Установите флаг preserveFormatting в false, если вам не нужны точные стили cell; это уменьшит размер полезной нагрузки и ускорит конвертацию.

Заключение

Это руководство демонстрирует, как выполнить преобразование CSV в XLSX в Java с использованием Aspose.HTML Cloud SDK for Java. Вы узнали, как настроить Maven, читать данные CSV с помощью потоков, вызывать облачный API и эффективно обрабатывать большие файлы. Помните, что для использования в продакшн требуется коммерческая лицензия; временную лицензию можно получить на странице временной лицензии, а полные варианты ценообразования — на странице продукта. Имея эти инструменты, вы сможете интегрировать бесшовную функциональность CSV‑to‑XLSX в любое Java‑приложение.

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

  • Как лучше всего обрабатывать CSV‑файлы, содержащие запятые внутри кавычек?
    Используйте надёжный CSV‑парсер, такой как Apache Commons CSV, перед передачей данных в API конвертации. Парсер учитывает кавычки‑делимитеры, обеспечивая точное извлечение строк.

  • Поддерживает ли Aspose.HTML Cloud SDK вывод XLSX без промежуточного HTML шага?
    Да. Метод convertDocument может принимать необработанное содержимое CSV и напрямую создавать файл XLSX, как показано в примерах кода.

  • Могу ли я выполнять конвертацию локально без использования облака?
    Aspose.HTML Cloud SDK — это облачный сервис, поэтому требуется подключение к интернету и действительные учетные данные. Для сценариев развертывания на месте рассмотрите Aspose.Cells, который является отдельным продуктом.

  • Как я могу отслеживать статус асинхронного запроса на конвертацию?
    API возвращает идентификатор задания, когда используется async=true. Опросите эндпоинт /jobs/{jobId}, чтобы проверить статус, затем загрузите результат после завершения задания.

Подробнее