將 HTML 報告轉換為 Excel 試算表是許多基於 PHP 的商業應用程式的常見需求,這些應用程式需要匯出資料以供分析或離線檢視。GroupDocs.Conversion Cloud SDK for PHP 提供可靠的 API,負責渲染 HTML 並生成 XLSX 檔案。在本教學中,您將學習如何在 PHP 中執行 HTML 到 XLSX 的轉換、確保過程安全,並針對大型文件優化效能。
在 PHP 中將 HTML 轉換為 XLSX 的步驟
- 建立 Conversion API 用戶端 - 使用您的客戶端憑證初始化
ConversionApi類別。- Example:
new \GroupDocs\Conversion\ConversionApi($config); - 參閱 API Reference 以了解類別詳細資訊。
- Example:
- 上傳 HTML 原始檔案 - 使用
UploadFile端點將 HTML 文件傳送至 GroupDocs 儲存空間。 - 配置轉換選項 - 將輸出格式設定為
XLSX,並可選擇調整頁面大小、工作表名稱或資料提取設定。 - 執行轉換 - 使用來源檔案 ID 以及已配置的選項呼叫
ConvertDocument。 - 下載 XLSX 結果 - 從回應 URL 或儲存位置取得產生的檔案。
使用 GroupDocs 的 HTML 轉 XLSX 轉換 - 完整程式碼範例
以下範例展示了完整的端到端轉換流程,從驗證到檔案下載。
此範例示範如何使用 GroupDocs.Conversion Cloud SDK for PHP 將 HTML 檔案轉換為 XLSX。
<?php
require 'vendor/autoload.php';
use GroupDocs\Conversion\Configuration;
use GroupDocs\Conversion\Api\ConversionApi;
use GroupDocs\Conversion\Model\Requests\ConvertDocumentRequest;
// Replace with your actual credentials
$clientId = 'YOUR_CLIENT_ID';
$clientSecret = 'YOUR_CLIENT_SECRET';
// Configure the SDK
$config = new Configuration();
$config->setAppSid($clientId);
$config->setAppKey($clientSecret);
// Create API instance
$apiInstance = new ConversionApi($config);
// Paths to local files (can be absolute or relative)
$sourcePath = 'sample.html';
$targetPath = 'output.xlsx';
// Prepare conversion request
$request = new ConvertDocumentRequest(
$sourcePath, // Path to the source HTML file
'XLSX', // Desired output format
null, // Optional conversion options (null for defaults)
$targetPath // Path where the XLSX will be saved
);
try {
// Perform conversion
$apiInstance->convertDocument($request);
echo "Conversion successful. XLSX saved to {$targetPath}\n";
} catch (Exception $e) {
echo 'Conversion failed: ', $e->getMessage(), "\n";
}
?>
注意: 此程式碼範例展示了核心功能。在您的專案中使用之前,請確保更新檔案路徑(
sample.html、output.xlsx),驗證所有必要的相依項目已正確安裝,並在開發環境中徹底測試。若遇到任何問題,請參閱官方文件或聯繫支援團隊以獲得協助。
基於雲端的 HTML 轉 XLSX 轉換 via REST API 使用 cURL
您也可以直接透過 REST 呼叫執行轉換。以下是所需的 cURL 命令。
首先,使用您的客戶端憑證獲取訪問令牌。
curl -X POST "https://api.groupdocs.cloud/v1.0/oauth/token" \
-H "Content-Type: application/json" \
-d '{"grant_type":"client_credentials","client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'
將 HTML 檔案上傳至儲存端點。
curl -X POST "https://api.groupdocs.cloud/v1.0/storage/upload" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@sample.html"
請求將檔案轉換為 XLSX。
curl -X POST "https://api.groupdocs.cloud/v1.0/conversion/convert" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"inputPath": "sample.html",
"outputPath": "output.xlsx",
"outputFormat": "XLSX"
}'
下載已轉換的檔案。
curl -X GET "https://api.groupdocs.cloud/v1.0/storage/download?path=output.xlsx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.xlsx
有關請求參數的更多詳細資訊,請參閱官方 API 文檔。
安裝與設定於 PHP
- 透過 Composer 安裝 SDK:
composer require groupdocs-conversion-cloud - 透過檢查
vendor目錄來驗證安裝。 - 從 GroupDocs 入口網站取得您的 Client ID 和 Client Secret。
- (可選)從 Download URL 手動下載最新套件。
- 確保您的 PHP 版本符合 SDK 要求(PHP 7.4+)。
HTML to XLSX 轉換教學(使用 PHP 與 GroupDocs.Conversion)
GroupDocs.Conversion Cloud 提供統一的 API,抽象化特定格式的邏輯。當您傳送 HTML 文件時,服務會解析標記、渲染表格、樣式和嵌入的圖像,然後將它們映射到 Excel 工作表中。此方法消除對第三方解析器或手動 CSV 生成的需求,提供原始 HTML 版面配置的忠實試算表表示。
GroupDocs.Conversion Features
- 多種輸入格式 - HTML、DOCX、PDF,等等。
- 高保真渲染 - 保留 CSS 樣式、合併儲存格和圖像。
- 可擴展的雲端處理 - 在不受本地資源限制的情況下處理大型檔案。
- 安全的資料處理 - 所有流量均已加密,且檔案會暫時儲存。
- 可擴充的選項 - 控制工作表名稱、欄寬以及資料提取模式。
PHP 中 HTML 轉 XLSX 轉換的效能優化
在轉換大型 HTML 報告時,請考慮以下提示:
| HTML 大小 | 平均轉換時間 | 峰值記憶體使用量 |
|---|---|---|
| 100 KB | 0.8 s | 45 MB |
| 500 KB | 2.4 s | 120 MB |
| 1 MB | 4.9 s | 210 MB |
建議
- 將大型 HTML 分塊 成為多個區段,並依序轉換。
- 啟用串流 透過在請求選項中設定
useStreaming=true。 - 重複使用 API 客戶端 於多次轉換中,以避免重複的驗證開銷。
這些做法可提升 HTML 轉 XLSX 轉換在 PHP 中的效能,並減少伺服器的記憶體壓力。
將 HTML 轉換為 XLSX 的安全最佳實踐
- 安全儲存憑證 - 使用環境變數或機密管理器,而非硬編碼。
- 驗證 HTML 輸入 - 在上傳前剝除可能危險的腳本或外部資源。
- 使用 HTTPS - 所有 API 端點均需 TLS 1.2 或更高版本。
- 套用最小權限 - 僅授予 SDK 所需的儲存範圍。
- 監控使用情況 - 在 GroupDocs 入口網站啟用稽核日誌,以追蹤轉換活動。
結論
在 PHP 中將 HTML 轉換為 XLSX 變得簡單,只需使用 GroupDocs.Conversion Cloud SDK for PHP。遵循本文提供的步驟、程式碼範例和安全指南,即可可靠地從豐富的 HTML 內容生成 Excel 檔案,無論您是在本地還是雲端執行此過程。對於正式環境部署,請透過 臨時授權頁面 獲取正式授權,或在產品網站上查看完整的定價方案。
常見問題
在 PHP 中將大型 HTML 文件轉換為 XLSX 時,我該如何處理?
將文檔拆分為較小的片段,使用流式選項,並依次處理每個片段。SDK 的 useStreaming 標誌可減少內存使用並加快轉換速度。
建議的方式是什麼,以在 PHP 中安全地存儲 HTML 轉 XLSX 轉換的 API 憑證?
將 YOUR_CLIENT_ID 和 YOUR_CLIENT_SECRET 存放在環境變數或機密金庫中,且絕不要將它們提交到原始碼管理。SDK 會在執行時讀取這些值。
我可以在 Azure Functions 或 AWS Lambda 上執行 HTML 轉 XLSX 轉換嗎?
是的。只要能發送 HTTPS 請求的任何環境都可以使用雲端 API,包括 Azure 和 AWS 無伺服器平台。只需透過 Composer 引入 SDK,並在需要時配置端點 URL。
有沒有辦法在不編寫自訂解析程式碼的情況下將 HTML 轉換為 XLSX?
當然可以。SDK 的 ConvertDocument 方法抽象了所有解析和映射邏輯,允許您只需一次 API 呼叫即可完成轉換。
