Create, Manage, Maintain: A Practical Guide to the Aspose.Cells Cloud Management API
Creating an empty workbook, renaming a sheet, compressing a bloated file, or repairing a corrupted one — these are the small, everyday chores that still eat developer time when you don’t have the right tool.
ManagementControllerturns them into one-liners.
Every application that works with spreadsheets eventually hits the same unglamorous tasks:
- Creating a new, empty workbook on the fly — sometimes from a branded template.
- Rearranging worksheets — adding, renaming, deleting, reordering — because the shape of the data changed since yesterday.
- Taming file size — compressing a 40 MB XLSX down to 8 MB before emailing it.
- Rescuing a corrupted file — the one a user saved wrong, or a tool exported badly.
- Inspecting structure — figuring out which sheets, tables, charts, and merged-cell regions live inside a workbook without opening it.
The ManagementController in the Aspose.Cells Cloud microservice (source: src/Aspose.Cells.Cloud.MicroService/Controllers/ManagementController.cs) handles all of these behind a clean REST surface. This post introduces its 15 endpoints with runnable cURL examples you can paste into your pipeline today.
1. What does ManagementController do?
ManagementController is the controller dedicated to workbook lifecycle and housekeeping. Unlike ConversionController (format conversion), DataProcessingController (bulk merge/split/import), or CellsController (cell-level read/write), this controller is about the shape, health, and metadata of the workbook itself.
| Responsibility | Typical endpoints |
|---|---|
| Create workbooks, optionally from a template | spreadsheet/create |
| Inspect structure — worksheets, merged cells, full structure JSON | spreadsheet/worksheets, spreadsheet/mergedcells, spreadsheet/structure, {name}/worksheets/{worksheet}/mergedcells, {name}/structure |
| Modify worksheet layout — add, delete, rename, move | spreadsheet/add/worksheet, spreadsheet/delete/worksheet, spreadsheet/rename/worksheet, spreadsheet/move/worksheet |
| Maintain — compress, repair, accept revisions | spreadsheet/compress, spreadsheet/repair, spreadsheet/accept-all-revisions, {name}/accept-all-revisions |
Every endpoint takes a workbook as multipart input (local) or references one already in cloud storage (remote), and returns either a modified workbook stream, a JSON payload, or a simple OK.
2. The fifteen endpoints at a glance
| # | HTTP | Route | Source | What it does |
|---|---|---|---|---|
| 1 | PUT | /v4.0/cells/spreadsheet/create |
— | Create a new workbook, optionally from a template |
| 2 | PUT | /v4.0/cells/spreadsheet/worksheets |
Local | List all worksheets (name + type) |
| 3 | PUT | /v4.0/cells/spreadsheet/add/worksheet |
Local | Add a worksheet with type, name, position |
| 4 | PUT | /v4.0/cells/spreadsheet/delete/worksheet |
Local | Remove a worksheet by name |
| 5 | PUT | /v4.0/cells/spreadsheet/rename/worksheet |
Local | Rename a worksheet |
| 6 | PUT | /v4.0/cells/spreadsheet/move/worksheet |
Local | Move a worksheet to a new index |
| 7 | PUT | /v4.0/cells/spreadsheet/compress |
Local | Compress the workbook to reduce size |
| 8 | PUT | /v4.0/cells/spreadsheet/repair |
Local | Repair a corrupted workbook |
| 9 | GET | /v4.0/cells/{name}/worksheets/{worksheet}/mergedcells |
Cloud | List merged-cell areas in a remote worksheet |
| 10 | PUT | /v4.0/cells/spreadsheet/mergedcells |
Local | List merged-cell areas in a local worksheet |
| 11 | PUT | /v4.0/cells/spreadsheet/accept-all-revisions |
Local | Accept all tracked changes |
| 12 | PUT | /v4.0/cells/{name}/accept-all-revisions |
Cloud | Accept all tracked changes in a remote file |
| 13 | PUT | /v4.0/cells/spreadsheet/structure |
Local | Get full structure as JSON |
| 14 | GET | /v4.0/cells/{name}/structure |
Cloud | Get full structure of a remote file as JSON |
| 15 | PUT | /v4.0/cells/spreadsheet/create |
— | (alias — see #1) |
Routes assume the host
https://api.aspose.cloud. Live calls look likehttps://api.aspose.cloud/v4.0/cells/....
3. Before you start: two prerequisites
- Get credentials. Sign up at Aspose Cloud Dashboard, create an Application, grab
Client IDandClient Secret. SDKs handle the JWT exchange for you; with cURL, you trade them for a bearer token manually. - Install an SDK — or just use cURL. Everything is plain REST.
<!-- .NET -->
<PackageReference Include="Aspose.Cells-Cloud" Version="25.x" />
# Python
pip install asposecellscloud
4. Quick start: create a new workbook
PUT /v4.0/cells/spreadsheet/create is the simplest thing the controller does — and one of the most useful. It returns a brand-new workbook file.
cURL
# 1) Get a bearer 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) Create an empty XLSX
curl -X PUT "https://api.aspose.cloud/v4.0/cells/spreadsheet/create?format=xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
--output new_workbook.xlsx
| Parameter | Type | Default | Meaning |
|---|---|---|---|
format |
string | xlsx |
Output file format — xlsx, xlsm, xlsb, ods, etc. |
template |
string | null |
Optional template file path. When provided, the new workbook is initialized with the template’s content and formatting. |
Using a template
If you have a branded template — logo in the header, brand colors in the theme, pre-formatted “Invoice” table — upload it once to cloud storage, then pass its path as template:
curl -X PUT "https://api.aspose.cloud/v4.0/cells/spreadsheet/create?format=xlsx&template=templates/invoice_branded.xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
--output invoice_2026_09_001.xlsx
Now your application can mint fresh invoices that already look right, without embedding any styling logic.
5. Walkthrough: manage worksheets in a workbook
These four endpoints handle the day-to-day shape of a workbook. Let’s walk through a realistic sequence: you’ve uploaded a workbook, and you need to list its sheets, add a new one, rename an existing one, and delete a third.
5a. List worksheets
curl -X PUT "https://api.aspose.cloud/v4.0/cells/spreadsheet/worksheets" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: multipart/form-data" \
-F "file=@my_workbook.xlsx"
Response:
[
{ "WorksheetName": "Sheet1", "SheetType": "Worksheet" },
{ "WorksheetName": "Data", "SheetType": "Worksheet" },
{ "WorksheetName": "Chart1", "SheetType": "Chart" }
]
5b. Add a new worksheet
curl -X PUT "https://api.aspose.cloud/v4.0/cells/spreadsheet/add/worksheet?sheetType=Worksheet&position=1&sheetName=Summary" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@my_workbook.xlsx" \
--output updated.xlsx
| Parameter | Type | Default | Meaning |
|---|---|---|---|
sheetType |
string | Worksheet |
Type of the new sheet — Worksheet, Chart, etc. |
position |
int | end | 0-indexed position to insert the new sheet |
sheetName |
string | auto | Name to give the new sheet |
5c. Rename a worksheet
curl -X PUT "https://api.aspose.cloud/v4.0/cells/spreadsheet/rename/worksheet?sourceName=Sheet1&targetName=Overview" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@my_workbook.xlsx" \
--output updated.xlsx
5d. Delete a worksheet
curl -X PUT "https://api.aspose.cloud/v4.0/cells/spreadsheet/delete/worksheet?sheetName=Chart1" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@my_workbook.xlsx" \
--output updated.xlsx
5e. Move a worksheet
# Move "Data" to position 0 (front of the workbook)
curl -X PUT "https://api.aspose.cloud/v4.0/cells/spreadsheet/move/worksheet?worksheet=Data&position=0" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@my_workbook.xlsx" \
--output updated.xlsx
Each of these endpoints follows the same pattern: upload workbook in multipart, get modified workbook back. Chain them in your pipeline, or call them ad-hoc from a UI.
6. Walkthrough: compress a bloated workbook
A user emailed you a 40 MB XLSX that’s 90% redundant XML. PUT /v4.0/cells/spreadsheet/compress shrinks it.
curl -X PUT "https://api.aspose.cloud/v4.0/cells/spreadsheet/compress?level=9" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@bloated.xlsx" \
--output slim.xlsx
| Parameter | Type | Meaning |
|---|---|---|
level |
int | Compression aggressiveness. 0 = no compression, 9 = maximum. |
A level of 9 on a typical 40 MB workbook often lands in the 6–10 MB range. The content is identical; only the ZIP compression of the XLSX container is tightened.
7. Walkthrough: repair a corrupted workbook
Sometimes you receive a file that Excel refuses to open. PUT /v4.0/cells/spreadsheet/repair runs the engine’s recovery routine and returns a clean version.
curl -X PUT "https://api.aspose.cloud/v4.0/cells/spreadsheet/repair" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@broken.xlsx" \
--output repaired.xlsx
No parameters. The controller re-serializes the workbook through the engine, which discards corrupt parts and writes a structurally valid file. Not every corruption is recoverable, but this handles the common cases — truncated ZIP entries, invalid cell references, malformed shared strings.
8. Key benefits summary
- One controller for lifecycle ops. Create, restructure, compress, repair, inspect — all under one auth model and one error contract.
- Template-aware creation. Don’t re-implement styling in your app; let the server bake a template into every new workbook.
- Local and remote variants. Same logic whether files are in your user’s browser or already in cloud storage.
- Structure introspection. The
structureendpoint returns a full JSON map of sheets, tables, pivot tables, charts, and shapes — perfect for driving a UI or a validation pipeline. - Zero infrastructure. No Excel install, no COM, no server to maintain.