بدون نصب محلی Excel. بدون نیاز به نگهداری سرور تبدیل. تبدیل XLSX → PDF، Excel → CSV/JSON/تصاویر/HTML به تماسهای ساده REST — و داشتن اولین “مبدل صفحهگسترده ابری” خود را در حدود سه دقیقه راهاندازی کنید.
“Convert that spreadsheet to a different format” یکی از رایجترین نیازها در توسعه روزمره است:
- تیمهای مالی و حقوقی یک گزارش PDF فقط‑خواندنی، مقاوم در برابر دستکاری میخواهند به جای یک
.xlsxکه هر کسی میتواند ویرایش کند؛ - تیمهای داده نیاز دارند دادههای جدولی را به سیستمهای پاییندست به عنوان 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 کنترلری است که به تبدیل فرمت / خروجی اختصاص دارد. این کنترلر تبدیل با دقت بالا در سطح موتور را در سه مجموعه از APIهای HTTP میپیچاند:
| # | فایل قبلاً در ذخیرهسازی ابری موجود است → دانلود یک فرمت جدید | GET /v4.0/cells/{name}?format=pdf |
یک کتابکار را مستقیماً در ذخیرهسازی ابری تبدیل میکند و نتیجه را بهصورت جریان بازمیگرداند — فایلهای بزرگ هرگز نیازی به انتقال به دستگاه شما ندارند |
|---|---|---|---|
| 1 | فایل محلی → تبدیل آنلاین (ویژگی اصلی) | PUT /v4.0/cells/convert/spreadsheet?format=pdf |
شما فایل را در بدنهٔ درخواست (multipart) بارگذاری میکنید؛ سرور آن را تبدیل میکند و فایل نتیجه را بهصورت مستقیم بازمیگرداند |
| 2 | فایل ابری → ذخیره به عنوان فرمت جدید، بازگشت به ذخیرهسازی ابری | PUT /v4.0/cells/{name}/saveas?format=pdf |
فایل تبدیلشده مستقیماً به ذخیرهسازی ابری نوشته میشود — ایدهآل برای خطوط لولهٔ خودکار |
تذکر پیادهسازی: مسیرهای منبع از پیشوند
v{version}/cellsبا نسخه API4.0استفاده میکنند، بنابراین تماسهای زنده به شکلhttps://api.aspose.cloud/v4.0/cells/...هستند.
دقت تبدیل بسیار فراتر از “کل فایل”
علاوه بر تبدیل یک کتابکار کامل، کنترلر میتواند یک عنصر واحد را صادر کند:
- یک worksheet خاص → PDF / image / CSV / JSON / HTML
- یک cell range خاص (مثلاً
A1:C12) → PDF / image / CSV / JSON / HTML - یک table خاص → PDF / image / CSV / JSON / HTML
- یک chart خاص → PNG / JPEG / BMP / GIF / SVG / TIFF / EMF / PDF
بهگونهای که هرگز نیازی به تبدیل یک کتابکار ۵۰ مگابایتی کامل فقط برای گرفتن یک نمودار نداشته باشید — فقط آنچه نیاز دارید را تبدیل کنید و پهنای باند و محاسبه را ذخیره کنید.
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 از همه نوع، بهعلاوه تمام خانواده خروجیهای spreadsheet → PDF / تصویر / دادههای وب — همه پشت یک سطح 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” است:
فایل محلی خود را در بدنه درخواست بارگذاری کنید، سرور آن را تبدیل میکند و فایل جدید را بهصورت جریان بازمیگرداند. هیچچیزی در ذخیرهسازی ابری نگهداری نمیشود و هیچ نسخه بارگذاریشدهای باقی نمیماند — دقیقاً برای لحظاتی که میگویید “just convert this for me” مناسب است.
① 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”.
③ پایتون
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 ...
④ جاوا
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. سناریو ۲: تبدیل مستقیم یک فایل ذخیرهشده در ابر
وقتی فایلی قبلاً در 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"))
شما همچنین میتوانید به یک عنصر واحد نفوذ کنید — به عنوان مثال، «the 3rd chart on Sheet1» را به صورت PNG (cloud‑storage flavour) رندر کنید:
# 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
نقاط انتهایی ابری دقیق در یک نگاه:
| هدف | نقطهٔ انتهایی | مثال 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 پاس دهید و با استفاده از پارامترهای query، نام فایل خروجی، ذخیرهسازی خروجی، قلمهای سفارشی، منطقه/محلی، رمز عبور و غیره را کنترل کنید — جزئیات بیشتر در بخش جزئیات مهندسی در زیر.
7. بیشتر نقاط انتهایی آماده “تبدیل آنلاین”
علاوه بر تبدیلهای سطحکاربرگ که در بالا ذکر شد، کنترلر مجموعه کاملی از نقاط انتهایی اختصاصی local-file → specific-target را ارائه میدهد (آپلود بدنه درخواست همانند سناریو 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 برای سیستم پاییندست صادر کنید»:
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 استفاده میکنند. در SDK .NET، موارد chart دارای بستههای تایپی هستند که به این مسیرهای v4.0 نگاشت میشوند — ConvertChartToImage (convert/chart/image) و ConvertChartToPdf (convert/chart/pdf). نسخههای worksheet/*، range/* و table/* هنوز بستهی v4.0 ندارند، بنابراین آنها را دقیقاً همانطور که cURL بالا انجام میدهد، بهصورت REST ساده فراخوانی کنید.
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 ابری» خود را خواهید داشت.
این را مفید یافتید؟ ستاره بزنید، بوکمارک کنید یا آن را به اشتراک بگذارید — و درباره موارد استفاده خود از تبدیل صفحات گسترده در نظرات بگویید.