用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.MVC的模板标签系统(五)
Sep 05 PHP
桌面中心(一)创建数据库
Oct 09 PHP
php discuz 主题表和回帖表的设计
Mar 13 PHP
php下载文件的代码示例
Jun 29 PHP
php foreach正序倒序输出示例代码
Jul 01 PHP
ThinkPHP多语言支持与多模板支持概述
Aug 22 PHP
thinkphp模板输出技巧汇总
Nov 24 PHP
yii实现图片上传及缩略图生成的方法
Dec 04 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
php转换颜色为其反色的方法
Apr 27 PHP
Yii框架中使用PHPExcel的方法分析
Jul 25 PHP
常见的5个PHP编码小陋习以及优化实例讲解
Feb 27 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
深入掌握include_once与require_once的区别
2013/06/17 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
composer.lock文件的作用
2016/02/03 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
Javascript图像处理—为矩阵添加常用方法
2012/12/27 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
jquery实现加载等待效果示例
2013/09/25 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
vue.js绑定class和style样式(6)
2016/12/09 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
python腾讯语音合成实现过程解析
2019/08/01 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
在主流系统之上安装Pygame的方法
2020/05/20 Python
通俗讲解python 装饰器
2020/09/07 Python
python 实现汉诺塔游戏
2020/11/28 Python
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
村庄环境整治方案
2014/05/15 职场文书
2015年新学期寄语
2015/02/26 职场文书
大学生逃课检讨书
2015/05/04 职场文书
夏洛特的网观后感
2015/06/15 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
教你怎么用Python生成九宫格照片
2021/05/20 Python
Python sklearn分类决策树方法详解
2022/09/23 Python