用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 相关文章推荐
检查php文件中是否含有bom的函数
May 31 PHP
自己写了一个php检测文件编码的函数
Apr 21 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
ThinkPHP实现支付宝接口功能实例
Dec 02 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
Sep 29 PHP
PHP中Closure类的使用方法及详解
Oct 09 PHP
PHP的PDO操作简单示例
Mar 30 PHP
PHP正则表达式过滤html标签属性(DEMO)
May 04 PHP
非常实用的php验证码类
May 15 PHP
Thinkphp微信公众号支付接口
Aug 04 PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 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静态类
2006/11/25 PHP
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
一个简单的php加密解密函数(动态加密)
2013/06/19 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
angularjs实现下拉列表的选中事件示例
2017/03/03 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
对于js垃圾回收机制的理解
2017/09/14 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
Python时间获取及转换知识汇总
2017/01/11 Python
Python操作Excel之xlsx文件
2017/03/24 Python
Python自定义线程类简单示例
2018/03/23 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
详解numpy矩阵的创建与数据类型
2019/10/18 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
使用Python求解带约束的最优化问题详解
2020/02/11 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
物业管理大学生个人的自我评价
2013/10/10 职场文书
师范应届生求职信
2013/11/15 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
骨干教师事迹材料
2014/12/17 职场文书
2015年高二班主任工作总结
2015/05/25 职场文书
2015年学校消防安全工作总结
2015/10/14 职场文书