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.
- Аутентификация и получение токена доступа
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, который вы будете использовать в последующих вызовах.
- Загрузите 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"
- Выполнить преобразование
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
- Скачать файл 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}, чтобы проверить статус, затем загрузите результат после завершения задания.