Нет локальной установки Excel. Нет необходимости поддерживать сервер конвертации. Преобразуйте XLSX → PDF, Excel → CSV/JSON/изображения/HTML в простые REST‑вызовы — и ваш первый “облачный конвертер таблиц” будет работать примерно за три минуты.

“Конвертировать эту таблицу в другой формат” — одно из самых распространённых требований в повседневной разработке:

  • Финансовые и юридические команды хотят только для чтения, защищённый от подделки PDF отчёт вместо .xlsx, который может редактировать любой;
  • Команды данных должны извлекать табличные данные в downstream‑системы в виде CSV / JSON;
  • Веб‑ и мобильные приложения хотят листы — и даже диаграммы — напрямую в PNG / SVG;
  • Порталы нуждаются в чистых фрагментах HTML / HTML-Table для встраивания;
  • Кому‑то нужно нормализовать кучу файлов .xls / .xlsx / .csv / .ods в один формат.

Ответы старой школы — локальная установка Excel с макросами или тяжёлый COM‑компонент на вашем собственном сервере — трудно масштабировать и сложно поддерживать кроссплатформенность. Aspose.Cells Cloud заменяет всё это чистым REST API: загрузите файл, получите файл в новом формате обратно.

В этом посте рассматриваются три API конвертации, предоставляемые основным ConversionController в микросервисе Aspose.Cells Cloud (исходный код: src/Aspose.Cells.Cloud.MicroService/Controllers/ConversionController.cs), с работающими примерами на cURL, C# (.NET), Python и Java.

1. Что может делать функция Convert?

ConversionController — это контроллер, предназначенный для конвертации форматов / экспорта. Он оборачивает конвертацию на уровне движка с высоким качеством в три набора HTTP API.

# Сценарий Типичный эндпоинт Что делает
1 Файл уже в облачном хранилище → загрузить в новом формате GET /v4.0/cells/{name}?format=pdf Преобразует книгу непосредственно в облачном хранилище и передаёт результат в виде потока — большие файлы никогда не покидают ваш компьютер
2 Локальный файл → онлайн-конвертация (ключевая функция) PUT /v4.0/cells/convert/spreadsheet?format=pdf Вы загружаете файл в теле запроса (multipart); сервер конвертирует его и сразу возвращает полученный файл
3 Облачный файл → сохранить в новом формате, обратно в облачное хранилище PUT /v4.0/cells/{name}/saveas?format=pdf Преобразованный файл сразу записывается обратно в облачное хранилище — идеально для автоматизированных конвейеров

Примечание к реализации: исходные маршруты используют префикс v{version}/cells с версией API 4.0, поэтому живые вызовы выглядят как https://api.aspose.cloud/v4.0/cells/....

Гранулярность конвертации выходит далеко за пределы “всего файла”

Помимо преобразования всей книги, контроллер может экспортировать один элемент:

  • Конкретный лист → PDF / image / CSV / JSON / HTML
  • Конкретный диапазон ячеек (e.g. A1:C12) → PDF / image / CSV / JSON / HTML
  • Конкретная таблица → PDF / image / CSV / JSON / HTML
  • Конкретная диаграмма → PNG / JPEG / BMP / GIF / SVG / TIFF / EMF / PDF

Чтобы вам никогда не приходилось конвертировать целую рабочую книгу размером 50 MB только ради одного графика — конвертируйте только то, что нужно, и экономьте полосу пропускания и вычислительные ресурсы.

2. Какие форматы поддерживаются?

Исходя из встроенного реестра ExportData в контроллере, матрица преобразования выглядит примерно так:

Тип Форматы
Импорт и экспорт (двунаправленный) XLS, XLSX, XLSB, XLSM, CSV, TSV, ODS, TXT
Только экспорт PDF, OTS, XPS, DIF, HTML / MHTML, JSON, PNG, JPEG, BMP, SVG, TIFF, EMF, NUMBERS, FODS, Markdown, DOCX, PPTX, SQL, etc.

Вкратце: spreadsheet-to-spreadsheet конверсии любого типа, plus вся семья выводов spreadsheet → PDF / image / web-data — всё за один API.

3. Две вещи, необходимые перед началом

  1. Зарегистрируйте бесплатный аккаунт на Aspose Cloud Dashboard и создайте приложение, чтобы получить Client ID и Client Secret (SDK автоматически обменивают их на JWT — нет необходимости самостоятельно формировать заголовки аутентификации).
  2. Установите SDK для выбранного вами языка:
<!-- .NET -->
<PackageReference Include="Aspose.Cells-Cloud" Version="25.x" />
# Python
pip install asposecellscloud
<!-- Java (Maven) — note: NOT on Maven Central, so the Aspose repo below is required -->
<repositories>
    <repository>
        <id>AsposeJavaAPI</id>
        <name>Aspose Java API</name>
        <url>https://repository.aspose.cloud/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-cells-cloud</artifactId>
    <version>26.8</version>
</dependency>

Не требуется SDK? Всё — обычный REST, поэтому cURL работает так же (см. ниже).

4. Сценарий 1: Конвертировать локальный файл Excel онлайн (заголовок Convert API)

Это PUT /v4.0/cells/convert/spreadsheet — флагманский API “Convert”:
загрузите ваш локальный файл в тело запроса, сервер преобразует его и передаст новый файл обратно. Ничего не сохраняется в облачном хранилище и копия загрузки не остаётся — идеально для “просто конвертировать это для меня” моментов.

① cURL

# 1) First, get a token
curl -X POST "https://api.aspose.cloud/connect/token" \
  -d "grant_type=client_credentials" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET"

# 2) XLSX -> PDF
curl -X PUT "https://api.aspose.cloud/v4.0/cells/convert/spreadsheet?format=pdf" \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@Book1.xlsx" \
  -o Book1.pdf

Замените format на csv, json, png, xlsx… и вы получите этот формат. Один параметр — один формат вывода.

② C# / .NET

using Aspose.Cells.Cloud.SDK.Api;
using Aspose.Cells.Cloud.SDK.Request;

var cellsApi = new CellsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");

var request = new ConvertSpreadsheetRequest(
    spreadsheet: "C:/invoices/Book1.xlsx",   // local file path
    format: "pdf");                          // target: pdf / csv / json / png ...

using Stream result = cellsApi.ConvertSpreadsheet(request); // converted file stream
using var outFile = File.Create("C:/invoices/Book1.pdf");
result.CopyTo(outFile);

// Even simpler: point the SDK at an output path and let it write the file
// cellsApi.ConvertSpreadsheet(request, "C:/invoices/Book1.pdf");

Нужно пакетное задание? Поместите это в цикл по каталогу, и вы получите “конвертировать всю папку XLSX → PDF”.

③ Python

from asposecellscloud.apis.cells_api import CellsApi
from asposecellscloud.requests import ConvertSpreadsheetRequest
import os

instance = CellsApi(
    os.getenv('CellsCloudClientId'),
    os.getenv('CellsCloudClientSecret'))

# Local XLSX -> PDF, result written locally
instance.convert_spreadsheet(
    ConvertSpreadsheetRequest("Book1.xlsx", "pdf"),
    local_outpath="Book1.pdf")

# Other formats: just change the parameter — json / csv / xlsx / png ...

④ Java

import com.aspose.cloud.cells.api.CellsApi;
import com.aspose.cloud.cells.request.ConvertSpreadsheetRequest;
import java.io.File;

public class ConvertDemo {
    public static void main(String[] args) throws Exception {
        CellsApi api = new CellsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");

ConvertSpreadsheetRequest req = new ConvertSpreadsheetRequest();
        req.setSpreadsheet("C:/invoices/Book1.xlsx");   // local file path
        req.setFormat("pdf");                           // target: pdf / csv / json / png ...

File out = api.convertSpreadsheet(req);         // converted result as a File
        out.renameTo(new File("C:/invoices/Book1.pdf"));
        System.out.println("Converted: " + out.getAbsolutePath());
    }
}

Четыре языка, одно действие: укажите путь + параметр формата → получите целевой файл обратно. Это и есть основное преимущество Convert API — отсутствие зависимости от Excel на стороне вызывающего, без шаблонов, без COM‑компонентов.

5. Сценарий 2: Преобразовать файл, хранящийся в облаке, напрямую

Если файл уже находится в Aspose Cloud Storage (или в вашем объектном хранилище), вам не нужно загружать/скачивать большие файлы — конвертация происходит в облаке, минимизируя передачу данных и повышая производительность при работе с большими рабочими книгами:

# cloud Book1.xlsx -> PDF, downloaded locally
curl -G "https://api.aspose.cloud/v4.0/cells/Book1.xlsx" \
  -H "Authorization: Bearer $TOKEN" \
  --data-urlencode "format=pdf" \
  --data-urlencode "folder=Reports" \
  -o Book1.pdf
from asposecellscloud.apis.cells_api import CellsApi
from asposecellscloud.requests import ExportSpreadsheetAsFormatRequest

instance = CellsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")

# Convert a cloud-stored workbook straight to PDF
instance.export_spreadsheet_as_format(
    ExportSpreadsheetAsFormatRequest("Book1.xlsx", format="pdf", folder="Reports"))

Вы также можете перейти к отдельному элементу — например, отобразить “3‑й график на листе Sheet1” в формате PNG (вариант cloud‑storage):

# chart -> PNG
curl -G "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/worksheets/Sheet1/charts/2" \
  -H "Authorization: Bearer $TOKEN" \
  --data-urlencode "format=png" \
  -o chart.png

Гранулярные облачные конечные точки в одном взгляде:

Цель Endpoint Пример format
Вся книга GET /v4.0/cells/{name} pdf / xlsx / csv / json
Отдельный лист GET /v4.0/cells/{name}/worksheets/{ws} pdf / png / svg
Отдельный диапазон GET /v4.0/cells/{name}/worksheets/{ws}/ranges/{range} pdf / csv / json / html / png
Отдельная таблица GET /v4.0/cells/{name}/worksheets/{ws}/tables/{table} pdf / csv / json / html / png
Отдельный график GET /v4.0/cells/{name}/worksheets/{ws}/charts/{index} pdf / png / jpeg / svg / tiff

6. Сценарий 3: SaveAs — записать результат обратно в облачное хранилище

Когда вы хотите, чтобы преобразованный файл сохранённый обратно в облачное хранилище (а не загруженный), используйте PUT /v4.0/cells/{name}/saveas. Это естественно подходит для автоматизации, например, «экспортировать сегодняшний отчет в PDF для архивации каждый день»:

curl -X PUT "https://api.aspose.cloud/v4.0/cells/Book1.xlsx/saveas?format=pdf" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
from asposecellscloud.apis.cells_api import CellsApi
from asposecellscloud.requests import SaveSpreadsheetAsRequest

instance = CellsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET")
instance.save_spreadsheet_as(
    SaveSpreadsheetAsRequest("Book1.xlsx", format="pdf", folder="Reports"))
# Result is saved directly in cloud storage; returns CellsCloudResponse(Code=200, Status="OK")

Вы можете передать детализированные параметры сохранения через тело запроса SaveOptionsData и управлять имя выходного файла, выходное хранилище, пользовательские шрифты, регион/локаль, пароль, и т.д. через параметры запроса — подробнее об этом в разделе Технические детали ниже.


7. Дополнительные готовые “online convert” конечные точки

Помимо вышеупомянутых конвертаций на уровне книги, контроллер предоставляет полный набор специализированных local-file → specific-target конечных точек (загрузка тела запроса такая же, как в Сценарии 1), которые более детализированы и экономичнее по пропускной способности:

Цель Конечная точка (PUT, префикс /v4.0/cells/convert/)
Рабочая книга → PDF / JSON / CSV spreadsheet/pdf, spreadsheet/json, spreadsheet/csv
Лист → PDF / JSON / CSV / HTML / HTML‑таблица worksheet/pdf, worksheet/json, worksheet/csv, worksheet/html, worksheet/html-table
Лист → изображение worksheet/image?worksheet=Sheet1&format=png
Диапазон → PDF / CSV / HTML / JSON / изображение range/pdf, range/csv, range/html, range/json, range/image?worksheet=..&range=A1:C12&format=png
Таблица → PDF / CSV / HTML / JSON / изображение table/pdf, table/csv, table/html, table/json, table/image
Диаграмма → изображение / PDF chart/image?worksheet=..&chartIndex=0&format=png, chart/pdf

Например, “экспортировать только этот диапазон в CSV для нижестоящей системы”:

curl -X PUT "https://api.aspose.cloud/v4.0/cells/convert/range/csv" \
  -H "Authorization: Bearer $TOKEN" \
  --data-urlencode "worksheet=Sheet1" \
  --data-urlencode "range=A1:C100" \
  -F "file=@data.xlsx" \
  -o data.csv

Эти конечные точки используют тот же шаблон загрузки в теле, что и convert/spreadsheet. В .NET SDK случаи chart имеют типизированные обёртки, которые соответствуют этим маршрутам v4.0 — ConvertChartToImage (convert/chart/image) и ConvertChartToPdf (convert/chart/pdf). Варианты worksheet/*, range/* и table/* пока не имеют обёртки v4.0, поэтому вызывайте их через обычный REST точно так же, как делает cURL выше.

8. Инженерные детали и обработка ошибок

Параметры преобразования, которые стоит знать (параметры запроса)

  • password — открывать книги, защищённые паролем;
  • fontsLocation / custom-font support — сохранять правильность глифов при рендеринге PDF/изображений;
  • автонастройка строк/столбцов и возможность печати заголовков строк/столбцов (printHeadings), настройка региона/страницы (region) и т.д.;
  • сторона вывода: outPath / outStorageName определяют, куда результат сохраняется в облачном хранилище;

Коды ошибок (контракт, который документирует контроллер)

Статус Значение Типичная причина
400 Неверный запрос Неправильный URL / параметры, или неподдерживаемый format
401 Неавторизовано Ошибка аутентификации или не предоставлены действительные учетные данные
404 Не найдено Исходный файл недоступен в облачном хранилище
500 Ошибка сервера Сервис столкнулся с аномалией при получении данных конвертации

Аутентификация

Все SDK автоматически аутентифицируются с помощью OAuth 2.0 client_credentials и JWT; при использовании чистого cURL сначала вызовите /connect/token один раз (см. Сценарий 1, ① выше).

9. Почему Aspose.Cells Cloud Convert?

  • ✅ Zero local dependencies — отсутствие локальных зависимостей; нет Office/Excel, нет COM. Доступно из любого языка и любой платформы (Linux, контейнеры, serverless);
  • ✅ High-fidelity rendering — визуализация с высокой точностью; работает на движке Aspose.Cells, поэтому формулы, диаграммы, стили и разбиение на страницы отображаются профессионального качества в PDF/изображениях;
  • ✅ Cloud-native — облачный; файлы могут оставаться в облаке во время конвертации, чтобы избежать передачи больших объёмов; чистая онлайн‑конверсия не требует облачного хранилища вовсе;
  • ✅ Flexible granularity — гибкая гранулярность; workbook / worksheet / range / table / chart: конвертировать ровно тот фрагмент, который нужен;
  • ✅ One shape across SDKs — единый подход во всех SDK; примеры cURL, .NET, Python и Java соответствуют друг другу 1:1, поэтому вы можете буквально скопировать нужный вам шаблон.

Начните сейчас: зарегистрируйтесь на Aspose Cloud Dashboard, создайте приложение, вставьте свои учетные данные в любой фрагмент кода выше и запустите его — через несколько минут у вас будет собственный “облачный конвертер Excel”.

Нашли это полезным? Поставьте звезду, добавьте в закладки или поделитесь — и расскажите нам о своих собственных сценариях конвертации таблиц в комментариях.