phpspreadsheet 导出pdf文件

本文介绍了如何使用PhpOfficePhpSpreadsheet库来操作Excel文件,包括数据查询、内容处理和文件导出。同时,文章详细讲解了如何结合TCPDF扩展生成PDF文件,特别提到了设置中文支持的方法。在遇到TCPDF不支持中文的情况时,还给出了相应的解决参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PhpOffice\PhpSpreadsheet不但可以操作Excel和导出Excel,也可以用来导出pdf文件。不过需要安装扩展,Tcpdf/Dompdf等三方类库,否则提示类库不存在。

目录

安装扩展

 安装phpspreadsheet

安装tcpdf

创建模板

 具体实现

查询数据

处理数据

加载文件

文件下载

设置支持中文

保存文件

实现效果

总结


安装扩展

 安装phpspreadsheet

composer require phpoffice/phpspreadsheet

 

安装tcpdf

用来导出pdf文件

composer require tecnickcom/tcpdf

因为环境已安装phpspreadsheet就不再展示。

安装tcpdf

创建模板

创建xls模板用于导出pdf

 

 具体实现

查询数据

$key = ['id', 'product_name', 'product_desc', 'optionsNo', 'created_at'];
$data = Db::name('product')
    ->order('id', 'asc')
    ->field($key)->limit(0, 10)->select()->toArray();

 

处理数据

foreach ($data as &$v) {
    $v['created_at'] = date('Y/m/d H:i:s', $v['created_at']);
}
unset($v);

加载文件

加载模板文件并赋值文件内容

$spreadsheet = IOFactory::load('./uploads/test1.xlsx');
$sheet = $spreadsheet->getActiveSheet();

// 处理标题 因为合并了 使用A1即可赋值
$sheet->setCellValue('A1', '产品导出数据');


// 处理内容从第三行开始
$row = 3;
foreach ($data as $item) {
    $column = 1;
    foreach ($item as $value) {
        $sheet->setCellValueByColumnAndRow($column, $row, $value);
        $column++;
    }
    $row++;
}

 

文件下载

文件下载使用tcpdf扩展生成pdf文件

$pdf = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Tcpdf');

 

设置支持中文

设置字体 stsongstdlight支持中文

$pdf->SetFont('stsongstdlight', '', 10);

 

保存文件

$filename = './uploads/product1.pdf';
$pdf->save($filename);

实现效果

总结

PhpSpreadsheet操作Excel文件很方便,还有很多操作没有举例,有需要的可查看官网。

 

如果安装的Tcpdf不支持中文,上述中文设置也没有效果,可以查看这篇文章。

PHP TCPDF导出支持中文的pdf_JSON_L的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值