首页
下载
插件
案例
社区
文档
视频
资讯
关于
VEITOOL
联系方式
合作代理
插件协议
用户协议
登录
|
注册
全部
后端程序
前端模板
插件二开
综合求助
谈天说地
使用分享
安卓开发
phpspreadsheet+mpdf实现导出PDF
发布:2023-11-12 10:10
分类:后端程序
评论:5
浏览:282
安装扩展组件 ```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
dg_ly
1 楼
2023-11-12 12:09
谢谢分享!
0
回复 (0)
cnfox0273
2 楼
2023-12-06 22:43
感谢分享
0
回复 (0)
wjcms
3 楼
2023-12-10 10:15
很实用
0
回复 (0)
dg_ly
4 楼
2024-01-04 08:43
导出pdf不成功,最后 $objWriter->save('php://output'); 运行出错
0
回复 (1)
veitool
5 楼
2024-01-24 15:51
@dg_ly:
导出pdf不成功,最后 $objWriter->save('php://output'); 运行出错
两个扩展必须装好 ``` composer require phpoffice/phpspreadsheet //veitool2.0版框架已预装 composer require mpdf/mpdf ```
0
回复 (0)
登录后可回复
发布帖子
作者信息
veitool
等级:Lv3
积分:12023
真我而为 ~
最近热帖
Veitool 2.0.1 版新增数据字典相关功能使用
求安装在子目录教程
我下载测试,是PHPSTUDY下测试,提示要求PHP8.1.0,可找遍了也没有这版本
闲话一些后台功能,给vei作者看的
uniapp的移动端,请求官方出个呀
队列任务管理插件开放下载使用
安装veitool框架(phpStudy)
API接口安全性
在线构建器,安装好后提示普通用户无使用次数。这个需要如何解决呢
没有前台模板的教程,有了后台,前台的模板怎么写,放在哪个目录?
关于系统
VEITOOL
联系方式
合作代理
服务支持
插件中心
官方文档
社区问答
下载中心
产品下载
应用案例
新闻动态
使用协议
插件协议
用户协议
关注微信
Copyright ©2024 veitool.com 版权所有
粤ICP备17132594号-2