我正在使用 PHPSpreadsheet 創(chuàng)建 Excel。我想生成 Excel 文件,然后將 Excel 文件轉(zhuǎn)換為 PDF 文件。所以我做了以下事情:use PhpOffice\PhpSpreadsheet\IOFactory;use PhpOffice\PhpSpreadsheet\Reader\Xlsx;use PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf;use PhpOffice\PhpSpreadsheet\Reader\Exception;class DevisGenerator{public function runDevis() { $spreadsheet = $this->loadexcelTemplate(); $uuid = $this->uniqidReal(); $filename = $this->writeName($spreadsheet, $uuid); $this->convertPdf($spreadsheet, $filename); } public function writeName($spreadsheet, $uuid) { $worksheet = $spreadsheet->getActiveSheet(); $worksheet->getCell('B2')->setValue('Toto'); try { $writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); $filename = $uuid; $writer->save($filename.'.xlsx'); }catch (Exception $e) { //TODO gestion erreur } return $filename; }public function convertPdf($spreadsheet, $filename) { $writer = new \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet); $writer->save($filename.'.pdf'); }但是當(dāng)我運(yùn)行代碼時出現(xiàn)以下錯誤:試圖從命名空間“Mpdf”加載類“Mpdf”。您是否忘記了“PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf”的“使用”語句?我不明白這個錯誤,我已經(jīng)在我的代碼中正確插入了 use 語句。任何想法 ?
3 回答

慕哥6287543
TA貢獻(xiàn)1831條經(jīng)驗 獲得超10個贊
我已經(jīng)遇到與 Mpdf 類似的問題。
PHPSpreadsheet 支持多個庫生成 PDF。
我不喜歡使用 Mpdf,但使用 Tcpdf。我也不確定,但您需要手動安裝它們。
作曲家需要 tecnickcom/tcpdf
然后在你的代碼中:
$writer?=?new?Tcpdf($spreadsheet);
并且不要忘記使用聲明;)
希望這有幫助!

函數(shù)式編程
TA貢獻(xiàn)1807條經(jīng)驗 獲得超9個贊
由于您在創(chuàng)建實例時使用了完全限定的命名空間,因此不會考慮使用語句(因此會出現(xiàn)錯誤消息)。
看起來您在創(chuàng)建實例時在命名空間的開頭添加了補(bǔ)充斜杠Mpdf
,刪除它會解決您的問題。
$writer = new PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);
但是既然你已經(jīng)添加了一條use
語句,你就不需要再次使用完全限定的命名空間,你可以這樣做
$writer = new Mpdf($spreadsheet);

慕沐林林
TA貢獻(xiàn)2016條經(jīng)驗 獲得超9個贊
在課前使用語句后,你應(yīng)該只使用:
public function convertPdf($spreadsheet, $filename)
{
$writer = new Mpdf($spreadsheet);
$writer->save($filename.'.pdf');
}
- 3 回答
- 0 關(guān)注
- 217 瀏覽
添加回答
舉報
0/150
提交
取消