用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 相关文章推荐
一个没有MYSQL数据库支持的简易留言本的编写
Oct 09 PHP
一个用于网络的工具函数库
Oct 09 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
Mar 26 PHP
php 读取文件头判断文件类型的实现代码
Aug 05 PHP
php实现的支持断点续传的文件下载类
Sep 23 PHP
php中getservbyport与getservbyname函数用法实例
Nov 18 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
May 12 PHP
纯php生成随机密码
Oct 30 PHP
PHP语法小结之基础和变量
Nov 22 PHP
Symfony2 session用法实例分析
Feb 04 PHP
php自定义函数实现二维数组按指定key排序的方法
Sep 29 PHP
PHP实现的简单异常处理类示例
May 04 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分页思路以及在ZF中的使用
2012/05/30 PHP
PHP Curl多线程原理实例详解
2013/11/06 PHP
PHP模拟http请求的方法详解
2016/11/09 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
2017/09/05 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
vue实现标签云效果的示例
2020/11/09 Javascript
[46:43]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第二局
2016/03/02 DOTA
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
python之Socket网络编程详解
2016/09/29 Python
详谈python read readline readlines的区别
2017/09/22 Python
利用信号如何监控Django模型对象字段值的变化详解
2017/11/27 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
机械工程师的岗位职责
2013/11/17 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
给面试官的感谢信
2014/02/01 职场文书
经典洗发水广告词
2014/03/13 职场文书
总结表彰大会主持词
2014/03/26 职场文书
九一八事变演讲稿
2014/09/05 职场文书
群众路线领导班子四风对照检查材料
2014/09/27 职场文书
2015年重阳节慰问信
2015/03/23 职场文书
同事去世追悼词
2015/06/23 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技