用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
Dec 14 PHP
php park、unpark、ord 函数使用方法(二进制流接口应用实例)
Oct 19 PHP
如何使用PHP计算上一个月的今天
May 23 PHP
dedecms集成财付通支付接口
Dec 28 PHP
PHP 9 大缓存技术总结
Sep 17 PHP
PHP+Ajax异步带进度条上传文件实例
Nov 01 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
浅谈thinkphp5 instance 的简单实现
Jul 30 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
php设计模式之装饰模式应用案例详解
Jun 17 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 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笔记 字符串处理
2010/10/19 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
组合算法的PHP解答方法
2012/02/04 PHP
Javascript----文件操作
2007/01/18 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
jquery删除数据记录时的弹出提示效果
2014/05/06 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
js+html5实现canvas绘制镂空字体文本的方法
2015/06/05 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
jQuery的promise与deferred对象在异步回调中的作用
2016/05/03 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
JS中的算法与数据结构之集合(Set)实例详解
2019/08/20 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
Vue-axios-post数据后端接不到问题解决
2020/01/09 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
wxpython中Textctrl回车事件无效的解决方法
2016/07/21 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
Django多数据库的实现过程详解
2019/08/01 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
Python实现给PDF添加水印的方法
2021/01/25 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
canvas 阴影和图形变换的示例代码
2018/01/02 HTML / CSS
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
介绍下java.util.Arrays类
2012/10/16 面试题
《颐和园》教学反思
2014/02/26 职场文书
药剂专业自荐书
2014/06/20 职场文书
保留意见审计报告
2015/06/05 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
小学英语教师研修感悟
2015/11/18 职场文书
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers