Нет локальной установки 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с версией API4.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. Две вещи, необходимые перед началом
- Зарегистрируйте бесплатный аккаунт на Aspose Cloud Dashboard и создайте приложение, чтобы получить
Client IDиClient Secret(SDK автоматически обменивают их на JWT — нет необходимости самостоятельно формировать заголовки аутентификации). - Установите 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”.
Нашли это полезным? Поставьте звезду, добавьте в закладки или поделитесь — и расскажите нам о своих собственных сценариях конвертации таблиц в комментариях.