用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的特殊设置
Oct 09 PHP
php下网站防IP攻击代码,超级实用
Oct 24 PHP
php中获取指定IP的物理地址的代码(正则表达式)
Jun 23 PHP
php二维数组排序详解
Nov 06 PHP
一个不易被发现的PHP后门代码解析
Jul 05 PHP
PHP利用header跳转失效的解决方法
Oct 24 PHP
帝国cms常用标签汇总
Jul 06 PHP
php similar_text()函数的定义和用法
May 12 PHP
PHP读取并输出XML文件数据的简单实现方法
Dec 22 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
Apr 12 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 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分页时出现的Fatal error的解决方法
2011/04/18 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
webpack 1.x升级过程中的踩坑总结大全
2017/08/09 Javascript
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
vue中eslintrc.js配置最详细介绍
2018/12/21 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
2020/04/16 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
如何通过setTimeout理解JS运行机制详解
2019/03/23 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
Python标准库shutil用法实例详解
2018/08/13 Python
python用for循环求和的方法总结
2019/07/08 Python
python list多级排序知识点总结
2019/10/23 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
python如何控制进程或者线程的个数
2020/10/16 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
html5的新玩法——语音搜索
2013/01/03 HTML / CSS
HTML5 Canvas自定义圆角矩形与虚线示例代码
2013/08/02 HTML / CSS
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
台湾三立电视电商平台:电电购
2019/09/09 全球购物
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
老师对学生的评语
2014/04/18 职场文书
甜品店创业计划书
2014/08/14 职场文书
新闻稿件写作范文
2015/07/18 职场文书
公司岗位说明书
2015/10/08 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python