首页
下载
插件
案例
社区
文档
视频
资讯
关于
VEITOOL
联系方式
合作代理
插件协议
用户协议
登录
|
注册
全部
后端程序
前端模板
插件二开
综合求助
谈天说地
使用分享
安卓开发
phpspreadsheet+mpdf实现导出PDF
发布:2023-11-12 10:10
分类:后端程序
评论:5
浏览:133
安装扩展组件 ```txt composer require phpoffice/phpspreadsheet //veitool2.0版框架已预装 composer require mpdf/mpdf ``` 框架内控制器业务逻辑示范: ``` public function pdfout() { set_time_limit(0); $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $sheet=$spreadsheet->getActiveSheet(); $sheet->setTitle('导出信息表'); //设置当前sheet的名称 $sheet->getColumnDimension('A')->setWidth(20); //设置单元格的宽度 $sheet->getColumnDimension('B')->setWidth(20); $sheet->getDefaultRowDimension()->setRowHeight(40); //设置行高 $sheet->setCellValue('A1', 'ID') ->setCellValue('B1', '名称'); $itemid = $this->request->get('itemid',0); $itemid = is_array($itemid) ? implode(',',$itemid) : $itemid; $rs = MD::all("itemid IN($itemid)"); //读取数据 $total = count($rs)+1; foreach($rs as $k=>$r){ $i=$k+2; $sheet->setCellValue('A'.$i, $r['itemid']); $sheet->setCellValue('B'.$i, $r['title']); } //设置单元格边框 $sheet->getStyle('A1:B'.$total)->applyFromArray([ 'borders' => [ 'allBorders' => [ 'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN, 'color' => ['argb' => '000000'], ], ], ]); //设置自动换行、水平、垂直居中、单元格边框 $sheet->getStyle('A1:B'.$total) ->getAlignment()->setWrapText(true) ->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER) ->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER); //设置文件信息 $suffix='pdf'; $fileName='导出数据_'.date('YmdHis'); $fileName=iconv('UTF-8','gb2312',$fileName); //针对中文名转码 ob_end_clean(); header('Content-Type: application/pdf'); header('Content-Disposition: attachment;filename="'.$fileName.'.'.$suffix.'"'); header('Cache-Control: max-age=0'); $objWriter= \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Mpdf'); $objWriter->save('php://output'); exit; } ``` 此时遇到中文可能会出现乱码的情况,解决办法即是修改`phpspreadsheet`中`Mpdf`类文件,代码片段如下: ![pdf.jpg#100%](/file/upload/image/u1/20231112/655033cfbf4f7.jpg)
导出PDF
mpdf
veitool
1 楼
2024-01-24 15:51
@dg_ly:
导出pdf不成功,最后 $objWriter->save('php://output'); 运行出错
两个扩展必须装好 ``` composer require phpoffice/phpspreadsheet //veitool2.0版框架已预装 composer require mpdf/mpdf ```
0
回复 (0)
dg_ly
2 楼
2024-01-04 08:43
导出pdf不成功,最后 $objWriter->save('php://output'); 运行出错
0
回复 (1)
wjcms
3 楼
2023-12-10 10:15
很实用
0
回复 (0)
cnfox0273
4 楼
2023-12-06 22:43
感谢分享
0
回复 (0)
dg_ly
5 楼
2023-11-12 12:09
谢谢分享!
0
回复 (0)
登录后可回复
发布帖子
作者信息
veitool
等级:Lv3
积分:9921
真我而为 ~
最近热帖
Veitool 2.0.1 版新增数据字典相关功能使用
我下载测试,是PHPSTUDY下测试,提示要求PHP8.1.0,可找遍了也没有这版本
phpspreadsheet+mpdf实现导出PDF
安装veitool框架(phpStudy)
这种键值在SQL加了字段后 ,可以保存 ,怎么在编辑时,能正常显示出来呢?哪位大神给个实例模型php函数
没有前台模板的教程,有了后台,前台的模板怎么写,放在哪个目录?
踢掉某个在线用户
恭祝大家:新年快乐,吉祥如意,幸福安康!
队列任务管理插件开放下载使用
基于phpoffice的数据导入导出示例插件发布
关于系统
VEITOOL
联系方式
合作代理
服务支持
插件中心
官方文档
社区问答
下载中心
产品下载
应用案例
新闻动态
使用协议
插件协议
用户协议
关注微信
Copyright ©2024 veitool.com 版权所有
粤ICP备17132594号-2