> Нет установки 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. Что может сделать функция преобразования? 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 / изображение / CSV / JSON / HTML - Конкретный диапазон ячеек (например, A1:C12) → PDF / изображение / CSV / JSON / HTML - Конкретная таблица → PDF / изображение / CSV / JSON / HTML - Конкретная диаграмма → PNG / JPEG / BMP / GIF / SVG / TIFF / EMF / PDF Таким образом, вам никогда не придется преобразовывать целую книгу размером 50 МБ, чтобы получить одну диаграмму — преобразуйте только то, что вам нужно, и экономьте пропускную способность и вычислительные ресурсы. — ## 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 и др. | В кратце: преобразования таблица-в-таблицу любого рода, плюс вся семья выходов таблица → PDF / изображение / веб-данные — все это за одной API-поверхностью. — ## 3. Две вещи, которые вам нужны перед началом 1. Зарегистрируйте бесплатную учетную запись на Aspose Cloud Dashboard и создайте приложение, чтобы получить Client ID и Client Secret (SDK автоматически обменивает их на JWT — нет необходимости самостоятельно создавать заголовки аутентификации). 2. Установите SDK для вашего предпочтительного языка: xml <!-- .NET --> <PackageReference Include="Aspose.Cells-Cloud" Version="25.x" /> bash # Python pip install asposecellscloud xml <!-- Java (Maven) — обратите внимание: НЕТ в Maven Central, поэтому требуется репозиторий Aspose ниже --> <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 онлайн (основной API преобразования) Это PUT /v4.0/cells/convert/spreadsheet — флагманский “API преобразования”: загрузите ваш локальный файл в теле запроса, сервер преобразует его и возвращает новый файл. Ничто не сохраняется в облачном хранилище, и никакая копия загрузки не остается — идеально для моментов “просто преобразуйте это для меня”. ### ① cURL bash # 1) Сначала получите токен 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 csharp 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", // локальный путь к файлу format: "pdf"); // целевой: pdf / csv / json / png ... using Stream result = cellsApi.ConvertSpreadsheet(request); // поток преобразованного файла using var outFile = File.Create("C:/invoices/Book1.pdf"); result.CopyTo(outFile); // Еще проще: укажите SDK путь к выходному файлу и позвольте ему записать файл // cellsApi.ConvertSpreadsheet(request, "C:/invoices/Book1.pdf"); > Нужна пакетная работа? Поместите это в цикл по каталогу, и у вас будет “преобразовать всю папку XLSX → PDF”. ### ③ Python python from asposecellscloud.apis.cells_api import CellsApi from asposecellscloud.requests import ConvertSpreadsheetRequest import os instance = CellsApi( os.getenv('CellsCloudClientId'), os.getenv('CellsCloudClientSecret')) # Локальный XLSX -> PDF, результат записан локально instance.convert_spreadsheet( ConvertSpreadsheetRequest("Book1.xlsx", "pdf"), local_outpath="Book1.pdf") # Другие форматы: просто измените параметр — json / csv / xlsx / png ... ### ④ Java 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"); // локальный путь к файлу req.setFormat("pdf"); // целевой: pdf / csv / json / png ... File out = api.convertSpreadsheet(req); // преобразованный результат как файл out.renameTo(new File("C:/invoices/Book1.pdf")); System.out.println("Преобразовано: " + out.getAbsolutePath()); } } Четыре языка, одно действие: укажите путь + параметр формата → получите целевой файл обратно. Это и есть основная идея API преобразования — нулевая зависимость от Excel на стороне вызывающего, никаких шаблонов, никаких компонентов COM. — ## 5. Сценарий 2: Преобразование файла, хранящегося в облаке, напрямую Когда файл уже находится в облачном хранилище Aspose (или вашем объектном хранилище), вам не нужно загружать/скачивать большие файлы — преобразование происходит в облаке, минимизируя передачу данных и улучшая производительность при работе с большими книгами: bash # облачный Book1.xlsx -> PDF, загруженный локально 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 python from asposecellscloud.apis.cells_api import CellsApi from asposecellscloud.requests import ExportSpreadsheetAsFormatRequest instance = CellsApi("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET") # Преобразовать облачную книгу сразу в PDF instance.export_spreadsheet_as_format( ExportSpreadsheetAsFormatRequest("Book1.xlsx", format="pdf", folder="Reports")) Вы также можете углубиться в один элемент — например, отобразить “3-ю диаграмму на Sheet1” как PNG (облачный вариант): bash # диаграмма -> 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 Гранулярные облачные конечные точки наглядно: | Цель | Конечная точка | Пример 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 для архивирования каждый день”: bash 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 '{}' python 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")) # Результат сохраняется непосредственно в облачное хранилище; возвращает CellsCloudResponse(Code=200, Status="OK") Вы можете передать детализированные параметры сохранения через тело запроса SaveOptionsData и контролировать имя выходного файла, выходное хранилище, пользовательские шрифты, регион/локаль, пароль и т. д. через параметры запроса — больше об этом в разделе Инженерные детали ниже. — ## 7. Более готовые конечные точки “онлайн-преобразования” Кроме преобразований на уровне книги, контроллер предоставляет полный набор специализированных локальных файлов → конкретных целей конечных точек (такой же запрос с загрузкой в теле, как в Сценарии 1), которые более детализированы и дешевле по пропускной способности: | Цель | Конечная точка (PUT, префикс /v4.0/cells/convert/) | | ———————————————— | ——————————————————————————————————– | | Книга → PDF / JSON / CSV | spreadsheet/pdf, spreadsheet/json, spreadsheet/csv | | Лист → PDF / JSON / CSV / HTML / HTML-Table | 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 для downstream системы”: bash 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 случаи диаграммы имеют типизированные обертки, которые соответствуют этим маршрутам v4.0 — ConvertChartToImage (convert/chart/image) и ConvertChartToPdf (convert/chart/pdf). Варианты worksheet/*, range/* и table/* пока не имеют обертки v4.0, поэтому вызывайте их через чистый REST точно так же, как это делает cURL выше. — ## 8. Инженерные детали и обработка ошибок ### Параметры преобразования, которые стоит знать (параметры запроса) - password — открыть защищенные паролем книги; - fontsLocation / поддержка пользовательских шрифтов — сохранить правильные символы при рендеринге 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? - ✅ Никаких локальных зависимостей — без Office/Excel, без COM. Вызывается из любого языка и любой платформы (Linux, контейнеры, безсерверные технологии); - ✅ Высококачественная рендеринг — на основе движка Aspose.Cells, поэтому формулы, диаграммы, стили и разбиение на страницы рендерятся профессионального качества в PDF/изображениях; - ✅ Облачная природа — файлы могут оставаться в облаке во время преобразования, чтобы избежать передачи больших объемов данных; чистое онлайн-преобразование не требует облачного хранилища вообще; - ✅ Гибкая гранулярность — книга / лист / диапазон / таблица / диаграмма: преобразуйте именно ту часть, которая вам нужна; - ✅ Одна форма для всех SDK — примеры cURL, .NET, Python и Java отображаются 1:1, так что вы можете буквально скопировать понравившийся вам шаблон. Начните прямо сейчас: зарегистрируйтесь на Aspose Cloud Dashboard, создайте приложение, вставьте свои учетные данные в любой из приведенных выше фрагментов кода и запустите его — у вас будет свой “облачный конвертер Excel” за считанные минуты. Считаете это полезным? Поставьте звезду, добавьте в закладки или поделитесь этим — и расскажите нам о своих собственных случаях использования преобразования таблиц в комментариях.