利用php下载xls文件(自己动手写的)


Posted in PHP onApril 18, 2014

昨天看ECSHOP源码的时候,碰到了一点自己没有学过的只是--如何利用php实现下载xls文件。根据它的源码,我动手实现了一下,成功实现了这个效果。

源码:

<?php 
/* 
*@Description:下载xls表 
* 
* 
*/ 
function downloadXls($filename=''){ 
$filename = !empty($filename) ? $filename : die('nothing'); //header 的作用是 新建一个被下载的test.xls 
header("Content-Type: application/vnd.ms-excel; charset=utf8"); 
header("Content-Disposition: attachment; filename=$filename"); 
//这里需要被输出的内容直接输出到test.xls文件中 
echo 'This is the test!'; 
exit; 
} 
$fileName = 'test.xls'; 
downloadXls($fileName); 
?>

效果:

利用php下载xls文件(自己动手写的) 

注意:如果输出的是中文信息的话,要注意字符编码的格式转换!

但如果我想下载的是服务器中保存的xls文件呢?

经过查看php手册:发现很简单就可以实现这个功能了,使用到了一个 readfile函数 。代码如下:

<?php 
/* 
*@Description:下载xls表 
* 
* 
*/ 
function downloadXls($filename=''){ 
$filename = !empty($filename) ? $filename : die('nothing'); //header 的作用是 新建一个被下载的test.xls 
header("Content-Type: application/vnd.ms-excel; charset=utf8"); 
header("Content-Disposition: attachment; filename=$filename"); 
//这里是需要被输出的文件 
readfile($filename); 
} 
$fileName = 'test.xls'; 
downloadXls($fileName); 
?>

效果:

利用php下载xls文件(自己动手写的) 

再拓展一下:如果我想下载的是一个txt文件呢,pdf文件呢?

实现的方法就是修改header 输出中的Content-Type中的内容!

有什么不多的地方,请大神指出!

PHP 相关文章推荐
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
Jul 25 PHP
YII中assets的使用示例
Jul 31 PHP
php中随机函数mt_rand()与rand()性能对比分析
Dec 01 PHP
C# WinForm中实现快捷键自定义设置实例
Jan 23 PHP
PHP简单生成缩略图相册的方法
Jul 29 PHP
Symfony2 session用法实例分析
Feb 04 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
php+ajax实现商品对比功能示例
Apr 13 PHP
thinkphp5修改view到根目录实例方法
Jul 02 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
Apr 18 #PHP
从PHP的源码中深入了解stdClass类
Apr 18 #PHP
理解PHP中的stdClass类
Apr 18 #PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
Apr 17 #PHP
php实现的漂亮分页方法
Apr 17 #PHP
codeigniter中测试通过的分页类示例
Apr 17 #PHP
php生成静态页面的简单示例
Apr 17 #PHP
You might like
一篇入门的php Class 文章
2007/04/04 PHP
PHP 采集获取指定网址的内容
2010/01/05 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
Vue生命周期示例详解
2017/04/12 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
2018/07/03 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
利用python程序帮大家清理windows垃圾
2017/01/15 Python
Django实现快速分页的方法实例
2017/10/22 Python
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
python如何实现int函数的方法示例
2018/02/19 Python
基于Python函数和变量名解析
2019/07/19 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
python3中确保枚举值代码分析
2020/12/02 Python
外国语学院毕业生自荐信
2013/10/28 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
社保转移委托书范本
2014/10/08 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
2014年副班长工作总结
2014/12/10 职场文书
毕业典礼邀请函
2015/01/31 职场文书
刘公岛导游词
2015/02/05 职场文书
运动会班级前导词
2015/07/20 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
Java中try catch处理异常示例
2021/12/06 Java/Android
nginx配置之并发频次限制
2022/04/18 Servers
Go调用Rust方法及外部函数接口前置
2022/06/14 Golang