用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 相关文章推荐
基于文本的访客签到簿
Oct 09 PHP
PHP5中使用PDO连接数据库的方法
Aug 01 PHP
php仿QQ验证码的实例分析
Jul 01 PHP
浅谈Eclipse PDT调试PHP程序
Jun 09 PHP
PHP5.5和之前的版本empty函数的不同之处
Jun 13 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
Aug 20 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
Sep 06 PHP
PHP实现一个简单url路由功能实例
Nov 05 PHP
PHP网站自动化配置的实现方法(必看)
May 27 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
PHP实现的支付宝支付功能示例
Mar 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 CLI实现简单的数据库实时监控调度
2009/07/01 PHP
php printf输出格式使用说明
2010/12/05 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
javascript 获取select下拉列表值的代码
2009/09/07 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
python中去空格函数的用法
2014/08/21 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
Python实现的求解最大公约数算法示例
2018/05/03 Python
python 文本单词提取和词频统计的实例
2018/12/22 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
使用python进行广告点击率的预测的实现
2019/07/04 Python
Scrapy框架基本命令与settings.py设置
2020/02/06 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
学习型班组申报材料
2014/05/31 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
检讨书范文2000字
2015/01/28 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python