原生php生成导出execle表格(已解决)
原生php生成导出execle表格(已解决)
前期准备
1.php基础运行环境。
2.execle表格带样式的.html前端模板文件。
目标:
第一步
1.创建需要导出的Execle表格(带样式)的.html模板文件。
<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>*{margin: 0;padding: 0;}</style>
</head>
<body>
<table style="border: 1px solid #000;margin: 0 auto;"><thead ><tr><th style="border-right: 1px solid #000; border-bottom: 1px solid #000;">序号</th><th style="border-right: 1px solid #000; border-bottom: 1px solid #000;">名称</th><th style="border-right: 1px solid #000; border-bottom: 1px solid #000;">留言</th><th style="border-bottom: 1px solid #000;">最后修改时间</th></tr></thead><tbody>{{--循环后端控制器传来的数据,进行循环渲染模板--}}@foreach($data as $k=>$v)<tr><td style="border-right: 1px solid #000; border-bottom: 1px solid #000; text-align: center;">{{$k+1}}</td><td style="border-right: 1px solid #000; border-bottom: 1px solid #000; text-align: center;">{{$v['name']}}</td><td style="border-right: 1px solid #000; border-bottom: 1px solid #000; text-align: center;">{{$v['message_board']}}</td><td style="border-bottom: 1px solid #000; text-align: center;">{{$v['time']}}</td></tr>@endforeach</tbody></table>
</body>
</html>
html模板效果图
第二步:
1.创建php加载Execle模板文件控制器
//加载Execle模板文件
public function testHTML(){//查询数据库获取结构$data = Message::select('name','message_board','updated_at')->get();//将结果分配到模板上return view('Test.test.test',compact('data'));ray_merge)),$array_merge);
}
2.创建php导出execle文件控制器
public function createdExecle(){//获取execle.html模板的访问地址。$url=url('testHTML');//相当于:https://xcx.liutong.pro/testHTML 其中url()这是laravel框架中的辅助函数。//读取该模板文件中的内容$html= file_get_contents($url);//设置请求头信息header("Content-type: application/vnd.ms-excel; charset=utf8");//下载execle表格并设置编码为utf8header("Content-Disposition: attachment; filename=filename.xls");//生成execleob_end_clean();//清空(擦除)缓冲区并关闭输出缓冲header('Pragma: public');//Content-Length用于描述HTTP消息实体的传输长度the transfer-length of the message-body。header('Expires: 0');//Expires: 0:缓存过期时间;header('Cache-Control:must-revalidate,post-check=0,pre-check=0');//如果值为private或Must-revalidate,则只有第一次访问时会访问服务器//Content-Type: application/octet-stream(.*二进制拓展名):对应拓展名-http://tool.oschina.net/commonsheader('Content-Type:application/force-download');//告诉浏览器强制下载header('Content-Type:application/vnd.ms-execl');//打开页面后立即出现下载保存窗口,下载的文件为execlheader('Content-Type:application/octet-stream');//打开页面后立即出现下载保存窗口,下载的文件为bin / exe / dll /soheader('Content-Type:application/download');//下载文件header('Content-Transfer-Encoding:binary');//告知接收端为了保证报文的可靠传输,对报文采用了什么编码方式$data = $html;//得到模板文件中的内容 并进行输入echo $data. "\t";}
注意我使用的是laravel5.8版本,上述2个控制器需要你自己在laravel 路由文件中自己配置路由。然后再通过路由访问createdExecle()这个方法即可。
最后生成的效果图
注意:
execle需要样式的时候请在.html中写嵌入式css,否则样式将不会生效。
正确的写法示例:
<th style="border-right: 1px solid #000; border-bottom: 1px solid #000;">序号</th>
原生php生成导出execle表格(已解决)相关推荐
- FineReport 报表模板生成+导出Excel表格
跟spring boot 整合 :https://blog.csdn.net/zhanglixin_1984/article/details/79194145 看官方的文档纠结了一天,好东西,这个怎么 ...
- csgo如何保存自己的cfg_[CS:GO]如何导出cfg文件 最新方法[已解决]
今天小虎给大家带来[CS:GO]如何导出cfg文件[已解决],希望大家能够有所帮助. 第一步:首先在Steam库中找到CSGO游戏,并右键,选择"浏览本地文件". 第二步:点击上方 ...
- freemarker 应用模板导出Execle(解决生成弹出版本不适合)
1. jsp 页面链接 function exportExcel(type) { confirmx('确认要导出数据吗?', function() { var ...
- PowerDesiger 15逆向生成工程E-R图及导出word表格
应用环境:win8(64位)+oracle10g(32位)服务端+PowerDesigner15 需求:oracle数据库中的表结构是web工程框架hibernate 自动生成,现需要将数据库中已有的 ...
- vue实现HTML转PDF (已解决清晰、页边距、图片跨域导出等问题)
最近有需求做简历打印的功能,就又花时间研究了一下html转图片导出,里面牵扯到多页pdf导出时的分页和页边距问题,清晰度问题以及图片跨域问题等.我们一个一个来解决. 一.先说HTML转PDF的实现方法 ...
- SAP 导出 HTML,【我sap这导出数据表格export.mhtml怎么转换为 excel 工作表.xlsx】excel生成html表格数据...
如何把Html网页格式转成Excel表格 1.单击数据--导部数据--新建Web查询. 2.勾选我可以此内容,允许播放,单击继续按钮. 3.在地址栏输入网站地址,转到此网站里面. 4.跳转到指定网页, ...
- 【VS问题已解决】警告被视为错误 - 没有生成“object”文件
[VS问题已解决]警告被视为错误 - 没有生成"object"文件 目前遇到这个问题主要是因为代码存在不明显的语法错误.在VS生成解决方案的编译阶段之前会检查有没有明显的语法问题. ...
- 解决导入导出Excel表格文字乱码问题
解决导入导出Excel表格文字乱码问题 参考文章: (1)解决导入导出Excel表格文字乱码问题 (2)https://www.cnblogs.com/minjh/p/12299920.html 备忘 ...
- Vue导出Excel乱码问题(已解决)
后端已经写好了导出Excel的接口,调用接口会发现后端返回的是二进制流文件 实现方法: 在封装接口时,给接口传递一个参数 [ responseType: 'blob' ] 该参数是处理导出Exce ...
最新文章
- C语言实现RC4序列密码
- vc++ 6.0对话框上无法显示中文(乱码)
- 北大OJ百练——2721:忽略大小写比较字符串大小
- python教程:实现延时回调普通函数的方法
- 医学工作者如何进行医学科研设计?
- 统计与机器学习的异同
- 2007年noip普及组初赛试题
- 深度学习(10):自然语言处理(转)
- EL表达式判断条件要写在${}内
- [洛谷1681]最大正方形II
- python中合法命名的变量名_「变量名」python中变量的命名以及使用 - 金橙教程网...
- 真正的手机密码大全!(整理完整版)
- SEO优化:站群的操作方法有哪些,网站集群系统是什么?
- 201671030116宋菲菲 词频统计软件项目报告
- markdown学习笔记——字体/分割线/删除线/下划线
- 风格迁移1-02:Liquid Warping GAN(Impersonator)-源码模型测试-报错解决
- 您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。
- 深入理解latch: cache buffers chains
- TypeError: slice indices must be integers 数组索引必须是整数
- 有一千万资产能被称为富二代吗?