Преобразование данных Excel в CSV является частой задачей при построении конвейеров данных, инструментов отчетности или функций импорта/экспорта. Aspose.BarCode Cloud SDK for Node.js предоставляет надежную библиотеку, которая делает преобразование XLS в CSV в Node.JS простым и надежным. Это руководство проведёт вас через предварительные требования, шаги установки, полный рабочий пример и рекомендации по лучшим практикам, чтобы вы могли уверенно интегрировать преобразование в ваше приложение.

Полный рабочий пример конвертации XLS в CSV в Node.JS с использованием Aspose.BarCode

В этом примере показано, как прочитать книгу XLS из облачного хранилища, преобразовать каждый лист в CSV и передать результат обратно клиенту.

// Full working code for XLS to CSV conversion using Aspose.BarCode Cloud SDK

const { BarcodeApi, Configuration } = require('aspose-barcode-cloud');
const fs = require('fs');
const path = require('path');

// ==== Configuration ====
const config = new Configuration({
    clientId: "YOUR_CLIENT_ID",
    clientSecret: "YOUR_CLIENT_SECRET",
    // Optional: set a custom base URL if you use a private cloud
    // baseUrl: "https://api.aspose.cloud"
});

const apiInstance = new BarcodeApi(config);

// ==== Input / Output Paths ====
const inputFile = "sample.xls";               // Path to your local XLS file
const outputFolder = "output";                // Cloud folder for CSV files

// ---- 1. Upload XLS to cloud storage ----
async function uploadFile() {
    const fileData = fs.readFileSync(inputFile);
    await apiInstance.uploadFile({ path: inputFile, file: fileData });
    console.log(`Uploaded ${inputFile} to cloud storage.`);
}

// ---- 2. Convert XLS to CSV ----
async function convertXlsToCsv() {
    // Conversion options
    const options = {
        storage: "Default",               // Use default storage
        outPath: outputFolder,            // Destination folder
        format: "CSV",                    // Target format
        // Optional: delimiter, encoding, etc.
        delimiter: ",",
        encoding: "UTF-8"
    };

// Call the conversion endpoint (hypothetical method)
    const response = await apiInstance.convertDocument({
        name: inputFile,
        format: "csv",
        options: options
    });

console.log(`Conversion started. Check ${outputFolder} for CSV files.`);
    return response;
}

// ---- 3. Download generated CSV files ----
async function downloadCsvFiles() {
    const files = await apiInstance.getFilesList({ path: outputFolder });
    for (const file of files.value) {
        if (file.name.endsWith(".csv")) {
            const csvData = await apiInstance.downloadFile({ path: `${outputFolder}/${file.name}` });
            const localPath = path.join(__dirname, "result", file.name);
            fs.mkdirSync(path.dirname(localPath), { recursive: true });
            fs.writeFileSync(localPath, csvData.body);
            console.log(`Downloaded ${file.name} to ${localPath}`);
        }
    }
}

// ==== Execution Flow ====
(async () => {
    try {
        await uploadFile();
        await convertXlsToCsv();
        await downloadCsvFiles();
        console.log("XLS to CSV conversion completed successfully.");
    } catch (error) {
        console.error("Error during conversion:", error);
    }
})();

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

Преобразование XLS в CSV через Cloud API с помощью cURL

Вы можете выполнить то же преобразование без написания кода, используя cURL для вызова REST‑конечных точек. Процесс состоит из аутентификации, загрузки файла, запроса на преобразование и загрузки результата.

# 1. Get an access token
curl -X POST "https://api.aspose.cloud/connect/token" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET" \
     -H "Content-Type: application/x-www-form-urlencoded"
# Response contains "access_token"

# 2. Upload the XLS file
curl -X PUT "https://api.aspose.cloud/v3.0/barcode/storage/file/sample.xls" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -T "sample.xls"

# 3. Request XLS to CSV conversion
curl -X POST "https://api.aspose.cloud/v3.0/barcode/convert/sample.xls?format=csv&outPath=output" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

# 4. Download the generated CSV file
curl -X GET "https://api.aspose.cloud/v3.0/barcode/storage/file/output/sample.csv" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -o "sample.csv"

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

Как работает конвертация XLS в CSV в Node.JS

  1. Настройка конфигурации - Объект Configuration хранит ваши учетные данные клиента и необязательный базовый URL. Этот объект передается экземпляру BarcodeApi.
    const config = new Configuration({ clientId, clientSecret });
    const apiInstance = new BarcodeApi(config);
    
  2. Загрузка файла - Метод uploadFile передает локальный файл XLS в облачное хранилище Aspose.BarCode, делая его доступным для конвертации.
    await apiInstance.uploadFile({ path: inputFile, file: fileData });
    
  3. Вызов конвертации - convertDocument (гипотетический) отправляет запрос с именем исходного файла, целевым форматом (csv) и параметрами конвертации, такими как разделитель и кодировка. Сервис обрабатывает каждый лист и создает соответствующие CSV‑файлы.
    const response = await apiInstance.convertDocument({ name: inputFile, format: "csv", options });
    
  4. Получение результата - После конвертации getFilesList выводит список сгенерированных CSV‑файлов в папке вывода. Каждый файл затем загружается с помощью downloadFile и сохраняется локально.
    const files = await apiInstance.getFilesList({ path: outputFolder });
    const csvData = await apiInstance.downloadFile({ path: csvPath });
    
  5. Обработка ошибок - Любая ошибка API перехватывается в блоке catch, где вы можете записать детали или реализовать логику повторных попыток. Для полного списка кодов ошибок см. API reference.

Подготовка среды - Требования и настройка

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

  • Node.js 14 или выше, установленный на вашей машине разработки.
  • Учётная запись Aspose Cloud с действительными учётными данными клиента (Client ID и Client Secret).
  • Доступ в интернет для вызовов API.

Установите библиотеку через npm и добавьте ссылку на страницу загрузки для справки:

npm install aspose-barcode-cloud
# Download package details: https://releases.aspose.cloud/barcode/nodejs/

После установки создайте файл конфигурации (например, config.json), чтобы безопасно хранить ваши учётные данные.

Параметры конвертации: варианты и настройки

API конвертации принимает несколько необязательных параметров, позволяющих точно настроить вывод:

  • delimiter – Выберите символ для разделения полей (по умолчанию ,).
    options.delimiter = "\t"; // Tab‑delimited CSV
    
  • encoding – Укажите кодировку символов для CSV‑файла (например, UTF-8, ISO-8859-1).
    options.encoding = "UTF-8";
    
  • outPath – Укажите облачную папку, где будут храниться CSV‑файлы.
    options.outPath = "converted";
    
  • storage – Выберите имя хранилища, если вы используете пользовательскую службу хранения.
    options.storage = "MyCustomStorage";
    

Для полного списка поддерживаемых параметров см. API reference.

Практические советы по эффективному преобразованию XLS в CSV

  • Потоковая обработка больших файлов - Включите режим потоковой передачи, чтобы обрабатывать строки порциями и избегать высокого потребления памяти.
  • Используйте временную папку - Записывайте промежуточные CSV‑файлы в отдельную облачную папку и удаляйте её после загрузки.
  • Установите подходящий разделитель - Если ваши данные содержат запятые, переключитесь на табуляцию или разделитель‑конвейер, чтобы предотвратить смещение столбцов.
  • Проверка после загрузки - Проверьте первые несколько строк CSV, чтобы убедиться в правильной кодировке и использовании разделителя перед дальнейшей обработкой.

Заключение

Преобразование XLS в CSV в Node.JS становится простым, когда вы используете возможности Aspose.BarCode Cloud SDK for Node.js. Это руководство охватывало всё: от настройки окружения и полного рабочего примера до параметров конфигурации и ориентированных на производительность лучших практик. Не забудьте защитить свои клиентские учётные данные, выбрать потоковую передачу для больших книг и удалять временные файлы, чтобы поддерживать порядок в облачном хранилище. Для производственных развертываний вам понадобится платная лицензия; вы можете ознакомиться с ценами на странице продукта и получить временную оценочную лицензию со страницы временной лицензии.

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

Как конвертация XLS в CSV в Node.JS обрабатывает несколько листов?
Библиотека обрабатывает каждый лист последовательно, создавая отдельный CSV‑файл для каждого листа. При необходимости вы можете объединить их позже в один CSV. Обратитесь к Aspose.BarCode Cloud SDK for Node.js для получения подробной информации об использовании.

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

Что требуется в плане лицензирования для использования Aspose.BarCode Cloud SDK for Node.js в продакшн?
Для использования в продакшн требуется коммерческая лицензия. Варианты покупки перечислены на странице ценообразования продукта, а временную оценочную лицензию можно запросить на странице временной лицензии.

Можно ли настроить разделитель CSV при конвертации?
Абсолютно. Установите параметр delimiter в параметрах конвертации на любой нужный вам символ, например, табуляцию (\t) или вертикальную черту (|). Это гарантирует, что сгенерированный CSV будет соответствовать ожиданиям последующей обработки.

Читать далее