用PHP生成excel文件到指定目录


Posted in PHP onJune 22, 2015

最近公司要生成报表,用PHP生成。

header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=test_data.xls");

我百度了下,貌似这个很快能够实现,但是这个文件却是生成在在浏览器下载的地方,

我想把生成的文件生成到指定的目录,这样能否实现呢?

还有,可以往里面插入图片吗?

PHPExcel是英文的,看了半天没看懂。有没有直接生成的例子看啊?

下面我们附上例子:

/**
 +----------------------------------------------------------
 * 导入所需的类库 同java的Import
 * 本函数有缓存功能
 +----------------------------------------------------------
 * @param string $class 类库命名空间字符串
 * @param string $baseUrl 起始路径
 * @param string $ext 导入的文件扩展名
 +----------------------------------------------------------
 * @return boolen
 +----------------------------------------------------------
 */
function import($class, $baseUrl = '', $ext='.class.php') {
  static $_file = array();
  $class = str_replace(array('.', '#'), array('/', '.'), $class);
  if ('' === $baseUrl && false === strpos($class, '/')) {
    // 检查别名导入
    return alias_import($class);
  }
  if (isset($_file[$class . $baseUrl]))
    return true;
  else
    $_file[$class . $baseUrl] = true;
  $class_strut = explode('/', $class);
  if (empty($baseUrl)) {
    if ('@' == $class_strut[0] || APP_NAME == $class_strut[0]) {
      //加载当前项目应用类库
      $baseUrl = dirname(LIB_PATH);
      $class = substr_replace($class, basename(LIB_PATH).'/', 0, strlen($class_strut[0]) + 1);
    }elseif ('think' == strtolower($class_strut[0])){ // think 官方基类库
      $baseUrl = CORE_PATH;
      $class = substr($class,6);
    }elseif (in_array(strtolower($class_strut[0]), array('org', 'com'))) {
      // org 第三方公共类库 com 企业公共类库
      $baseUrl = LIBRARY_PATH;
    }else { // 加载其他项目应用类库
      $class = substr_replace($class, '', 0, strlen($class_strut[0]) + 1);
      $baseUrl = APP_PATH . '../' . $class_strut[0] . '/'.basename(LIB_PATH).'/';
    }
  }
  if (substr($baseUrl, -1) != '/')
    $baseUrl .= '/';
  $classfile = $baseUrl . $class . $ext;
  if (!class_exists(basename($class),false)) {
    // 如果类不存在 则导入类库文件
    return require_cache($classfile);
  }
}

/**
* 导出EXCEL表格
* @param array $data 数据,二维数组,每条数据一条记录
* @param array $title 每列数据的字段名,一唯数组,必须和数据顺序一致(可省略)
* @param string $filename excel名称
* @param array $field 需要指定导出的数据字段,排序必须和title一致,就是和查出数据的数组key值
*/
function exportExcel($data='',$title='',$filename='excel',$field=array()){
  if(!$data || !is_array($data)) return false;
  if($filename=='') $filename='excel';
  if($field && is_array($field)){//只要导出指定字段,且按这个顺序导出
    $dateNew=array();
    foreach ($data as $k=>$v){
      foreach ($field as $fkey){
        $dateNew[$k][$fkey]=$v[$fkey];
      }
    }
    $data=$dateNew;
  }

  import("@.ORG.Util.ExcelXml");//调用导出excel类
  $xls = new ExcelXml('UTF-8', false, 'Sheet1');
  $xls->addArray($data,$title);
  $xls->generateXML($filename);
}
PHP 相关文章推荐
怎么样可以把 phpinfo()屏蔽掉?
Nov 24 PHP
PHP MySQL应用中使用XOR运算加密算法分享
Aug 28 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
php函数array_merge用法一例(合并同类数组)
Feb 03 PHP
php有道翻译api调用方法实例
Dec 22 PHP
学习php设计模式 php实现适配器模式
Dec 07 PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 21 PHP
PHP实现带进度条的Ajax文件上传功能示例
Jul 02 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
Aug 02 PHP
Yii框架响应组件用法实例分析
Sep 04 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
Oct 15 PHP
tp5.1 框架数据库-数据集操作实例分析
May 26 PHP
php通过baihui网API实现读取word文档并展示
Jun 22 #PHP
PHP读取汉字的点阵数据
Jun 22 #PHP
php读取der格式证书乱码解决方法
Jun 22 #PHP
PHP aes (ecb)解密后乱码问题
Jun 22 #PHP
php实现对象克隆的方法
Jun 20 #PHP
php判断对象是派生自哪个类的方法
Jun 20 #PHP
php类的扩展和继承用法实例
Jun 20 #PHP
You might like
PHP的pcntl多进程用法实例
2015/03/19 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
如何实现JS函数的重载
2006/09/22 Javascript
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
[53:21]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS LGD-CDEC
2014/05/22 DOTA
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
举例讲解Python中字典的合并值相加与异或对比
2016/06/04 Python
Python set常用操作函数集锦
2017/11/15 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
优秀信贷员先进事迹
2014/01/31 职场文书
大学生自我评价范文分享
2014/02/21 职场文书
遥感技术与仪器求职信
2014/02/22 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
解除租赁合同协议书
2016/03/21 职场文书
教师节作文之小学四年级
2019/09/03 职场文书
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
Python下opencv库的安装过程及问题汇总
2021/06/11 Python