用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(2)
Oct 09 PHP
php实现的在线人员函数库
Apr 09 PHP
discuz论坛 用户登录 后台程序代码
Nov 27 PHP
PHP CURL模拟GET及POST函数代码
Apr 25 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
Jul 01 PHP
PHP IDE PHPStorm配置支持友好Laravel代码提示方法
May 12 PHP
PHP SOCKET编程详解
May 22 PHP
yii通过小物件生成view的方法
Oct 08 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
php 三大特点:封装,继承,多态
Feb 19 PHP
PHP微信支付结果通知与回调策略分析
Jan 10 PHP
PHP实现网站应用微信登录功能详解
Apr 11 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/05/26 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
javascript写的日历类(基于pj)
2010/12/28 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
JavaScript工具库之Lodash详解
2019/06/15 Javascript
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Python正则表达式使用范例分享
2016/12/04 Python
Python生成指定数量的优惠码实操内容
2019/06/18 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
python爬取微博评论的实例讲解
2021/01/15 Python
X/HTML5 和 XHTML2
2008/10/17 HTML / CSS
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
css animation配合SVG制作能量流动效果
2021/03/24 HTML / CSS
文明风采获奖感言
2014/02/18 职场文书
解除财产保全担保书
2014/05/20 职场文书
演讲稿开场白台词
2014/08/25 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
学校体育节班级口号
2015/12/25 职场文书