在開發 web 應用程序時,經常會遇到將 Excel 文件轉換成 PDF 文件并提供下載的需求。對于 PHP 開發者來說,這個任務相對較為簡單,主要依賴于第三方庫 phpOffice/PhpSpreadsheet 和 mpdf/mpdf。通過使用這兩個庫,我們可以輕松將 Excel 文件轉換成 PDF 文件,并通過瀏覽器提供下載。接下來,我將為大家介紹如何使用 PHP 通過這兩個庫來實現這一功能,并提供一些示例代碼。
首先,需要確保已經安裝了 Composer,這是 PHP 的依賴管理工具。在項目根目錄下創建一個 composer.json 文件,并添加以下內容:
{ "require": { "phpoffice/phpspreadsheet": "^1.18", "mpdf/mpdf": "^8.0" } }
然后,在命令行中進入項目目錄,并執行以下命令來安裝這兩個庫:
composer install
安裝完成后,我們可以開始編寫代碼。首先,導入所需的命名空間:
use PhpOffice\PhpSpreadsheet\IOFactory; use Mpdf\Mpdf;
接下來,假設我們有一個名為 data.xlsx 的 Excel 文件,其中包含了一些數據。我們需要將這個文件轉換成 PDF 并提供下載。以下是完整的 PHP 代碼:
$inputFile = 'data.xlsx'; $outputFile = 'output.pdf'; // 加載 Excel 文件 $spreadsheet = IOFactory::load($inputFile); // 創建 PDF 文件 $mpdf = new Mpdf(); // 從 Excel 文件中讀取每個工作表,并將其添加到 PDF 文件中 foreach ($spreadsheet->getAllSheets() as $sheet) { $html = '<table>'; foreach ($sheet->getRowIterator() as $row) { $html .= '<tr>'; foreach ($row->getCellIterator() as $cell) { $html .= '<td>' . $cell->getValue() . '</td>'; } $html .= '</tr>'; } $html .= '</table>'; $mpdf->WriteHTML($html); $mpdf->AddPage(); } // 將 PDF 文件保存到服務器上 $mpdf->Output($outputFile, \Mpdf\Output\Destination::FILE); // 提供下載鏈接 echo '<a href="' . $outputFile . '">點擊這里下載 PDF 文件</a>';
在上面的代碼中,我們首先加載了 Excel 文件,并通過循環遍歷每個工作表的每一行和每個單元格,將其轉換成 HTML 表格并添加到 PDF 文件中。然后,我們將該 PDF 文件保存到服務器上,并提供下載鏈接。
現在,只需將 Excel 文件和 PHP 代碼放在同一個目錄下,并通過瀏覽器訪問 PHP 文件,就可以實現將 Excel 文件轉換成 PDF 文件并提供下載的功能了。
總結來說,通過使用 phpOffice/PhpSpreadsheet 和 mpdf/mpdf 這兩個庫,我們可以在 PHP 中輕松地將 Excel 文件轉換成 PDF 文件并提供下載。這對于開發 web 應用程序來說是非常實用的,例如將 Excel 數據轉換成可供用戶下載的報告或生成可打印的 PDF 文件等。