php使用phpexcel导出文件

首先需要去官网https://github.com/PHPOffice/PHPExcel/下载PHPExcel

代码如下:

<?php
date_default_timezone_set('PRC');
/**
* 导出提现,充值记录
* */
function exportWalletStatAction(){
$body = [
[
'order_id'=>1,
'money'=>2222,
],
[
'order_id'=>2,
'money'=>3333,
]
]; $head = [['订单号', '金额']];
$needField = ['order_id','money'];
$body = filterFiels($body,$needField);
//导出文件的数据
$fileName = 'test';
export($fileName, $head, $body);
}
/**
* 得到需要导出的字段
* @return string
*/
function filterFiels($body, $needField)
{
if (!is_array($body) || !count(array($body))) {
$this->export();
}
$exportData = [];
if (is_array($body) && count($body)) {
foreach ($body as $key => $val) {
foreach ($needField as $needVal) {
if(isset($val[$needVal])){
$exportData[$key][$needVal] = $val[$needVal];
}
}
}
}
return $exportData;
} /**
* 处理导出文件
* @param string $fileName
* @param string $head
* @param string $body
* @param bool $clear
*/
function export($fileName = '', $head = '', $body = '', $clear = false)
{
if (!is_array($body) || !count(array($body)) || empty($body) ) {
$body = [
[
'没有相关数据'
]
];
}
if (is_array($head) && count($head)) {
$data = array_merge($head, $body);
} else {
$data = $body;
}
if (!$fileName) {
$fileName = date('ymdHis');
} else {
if (!$clear) {
$fileName = $fileName . '_' . date('ymdHis');
}
}
$fileName .= '.xls';
foreach ($data as $key => $val) {
foreach ($val as $k => $v) {
if (strpos($v, '=') === 0) {
$val[$k] = "\t" . $v;
$data[$key] = $val;
}
}
}
download($data, $fileName);
} /**
* 导出文件
* @param string $fileName
* @param string $head
* @param string $body
* @param bool $clear
*/
function download($data, $fileName = 'data.xsl')
{
error_reporting(E_ALL ^ E_NOTICE);
//error_reporting(0);
//文件引入
require_once __DIR__ .'/../../../../public/js/phpexcel/Classes/PHPExcel.php';
require_once dirname(__FILE__) . '/../../../../public/js/phpexcel/Classes/PHPExcel/Writer/Excel2007.php';
$objPHPExcel = new \PHPExcel();
$objPHPExcel->getActiveSheet()->fromArray($data, null, 'A1');
$objPHPExcel->getActiveSheet()->setTitle('Sheet1');
$objPHPExcel->setActiveSheetIndex(0);
ob_end_clean();
ob_start();
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $fileName . '"');
header('Cache-Control: max-age=0');
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit();//调用$objWriter->save('php://output')之后一定要紧跟exit
}
exportWalletStatAction();

php使用phpexcel导出文件的更多相关文章

  1. 使用PHPExcel导出文件

    使用PHPExcel导出文件步骤及解析: 新建一个excel表格:实例化PHPExcel类 创建sheet(内置表):createSheet()方法,创建新的sheet方法 setActiveShee ...

  2. phpExcel导出文件时内存溢出的问题

    在使用PHPExcel导出文件时,经常会因为文件过大导致PHP内存溢出报错,为了解决这个问题,可以使用PHPExcel提供的参数进行优化.这里说的Excel文件过大并不一定是文件大小,更关键的在于文件 ...

  3. PHPExcel使用-使用PHPExcel导出文件-导出MySQL数据

    现在数据库里面有一组数据,我们将它按照不同的难度进行分sheet. 首先我们需要写一个mysql的配置文件- db.config.php(utf-8编码) : <?php $dbconfig= ...

  4. PHPExcel使用-使用PHPExcel导出文件

    导出步骤: 1. 新建一个excel表格 ------------> 实例化PHPExcel类 2. 创建sheet(内置表)-------------> ( 1>. createS ...

  5. 在IE浏览器 使用PHPExcel导出文件时时 文件名中文乱码

    1.当我们使用IE内核的浏览器下在PHPExcel报表时(谷歌.火狐浏览器正常, IE浏览器,360浏览器的兼容模式报错),会出现如下错误: 2.解决办法: 在下载文件时,对当前的浏览器进行判断, 如 ...

  6. PHPExcel 导出时乱码

    今天遇到了个奇怪的问题..猜测应该是因为php文件的编码造成的,但是没有解决办法. 问题是,用PHPEXCEL导出文件的时候,相同的代码在一个文件中可以导出,在另一个文件中却不行.. 最后没有办法,只 ...

  7. PHPExcel使用收藏

    注意:PHP7版本中phpexcel导出文件是提示找不到文件,需修改PHPExcel目录下的calculation目录下的Functions.php的581行  去掉break; 下面是总结的几个使用 ...

  8. PHPexcel使用 技巧

    phpexcel不用多说了  导出表格时经常会用到  本帖主要记录一下几个经常用到的操作 # 设置自动换行 $PHPExcel->getActiveSheet()->getStyle(&q ...

  9. PHPExcel生成Excel文件---提示导出文件或者文件扩展名不一致,或导出的文件或文件扩展名无效

    $data = Db::name('shop_cart')->where('phone','15555555555')->select(); $objPHPExcel = new PHPE ...

随机推荐

  1. Serveral effective linux commands

    1. 统计当前文件夹下文件个数(不包括子目录下文件): $ ls -l | grep "^-" | wc -l 2. 统计当前文件夹下文件个数(包括子目录下文件): $ ls -l ...

  2. cocos2d JS-(JavaScript) 几种循环遍历对象的比较

    通常我们会用循环的方式来遍历数组.但是循环是 导致js 性能问题的原因之一.一般我们会采用下几种方式来进行数组的遍历: 方式1: for in 循环: var arr = [1,2,3,4,5]; v ...

  3. 数据加密之RijndaelManaged加密

    #region RijndaelManaged加密 /// <summary> /// 加密数据 /// </summary> /// <param name=" ...

  4. composer----------composer基本命令和遇到一些问题解决方案

    1.composer跟xdebug有冲突,每次用composer命令的时候都要报xdebug的错误,去php的配置文件里面将xdebug注释掉就可以了,但是我注释掉了以后还是不行.找了半天才看到,我用 ...

  5. ubuntu 安装/卸载nginx及常用命令

    安装命令 sudo apt-get update #更新apt sudo apt-get install nginx #安装nginx 启动/重启/停止命令 一. /etc/init.d/nginx ...

  6. CentOS双机中Docker下安装Mysql并配置互为主从模式

    CentOS双机中Docker下安装Mysql并配置互为主从模式 目录 1.搜索镜像... 1 2.拉取镜像... 1 3.绑定端口: 1 4.配置文件(修改/etc/mysql/my.cnf文件): ...

  7. C#7.0新特性(VS2017可用)

    分享一下其实2016年12月就已经公布了的C#7.0的新特性吧,虽然很早就出来了,但咱这IDE不支持啊.. 不过在昨天的VS2017中已经完美可以支持使用了. E文好的,移步官方介绍地址:https: ...

  8. java空心菱形

    图 1 要输出如图1所示的菱形,第一反应是看看这个菱形有什么特点.在草稿纸上比划了半天,将图1转化成了图2用数字表示的图 图 2 比较图1和图2发现有以下特点: (1)图2中的每一个数字代表图1中每个 ...

  9. Js闭包学习笔记

    好多内容摘抄了大神的博客内容,只为分享记录.如有冒犯,请见谅 参考文章 http://www.cnblogs.com/libin-1/p/5962269.html http://www.cnblogs ...

  10. java字符串转换总结

    1.byte[]转String String str = new String(strByte); 2.String转byte[] byte[] byteArr = str.getBytes(); 3 ...