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. JDBC 接口学习

    说明:文章所有内容皆选自实验楼教程[JDBC 入门教程],想要学习更多JDBC,可以点击教程进行学习~ JDBC 简介 JDBC 的全称是 Java Database Connectivity,叫做 ...

  2. CentOS6.5安装Maven3.2.5

    1.首先从官网下载最新的安装包http://maven.apache.org/download.cgi  apache-maven-3.2.5-bin.tar.gz 2.上传安装包到 /usr/loc ...

  3. centos7安装Amber16 && AmberTools

    Centos7 安装amber16 1.准备下载好的amber(Amber16.tar.bz2)及tools(AmberTools16.tar.bz2)安装包: $ cd MySoftware_hom ...

  4. smali参数引用说明

    比如非静态函数test(IJZ)V; p0表示this p1 I p2 J 以此类推

  5. smali加入日志

    const-string v0, "aaatag"const-string v1, "msg"invoke-static {v0,v1}, Landroid/u ...

  6. cocos2d-x JS 四人麻将中的服务器位置与客户端位置转换相关

    前言:在写各类游戏编程中,都会遇到一个问题,就是位置问题,服务端的位置是与客户端的位置是不同的,这中间需要进行一个转化,客户端一套代码运行,不管是任何人登陆,该位置始终都是在屏幕正下方,所以这样就要进 ...

  7. php背景图片上生成二维码,二维码上带logo 代码示例 (原)

    依赖库文件 phpqrcode.php (下载地址://www.jb51.net/codes/189897.html :或者在官网下载:http://phpqrcode.sourceforge.net ...

  8. node.js初识07

    之前有说过,nodejs是 没有web容器的,阿帕奇是自带的web容器,如果希望node达到阿帕奇的效果,即http://127.0.0.1:3000/a/b/c.html 出现这样的链接访问页面,所 ...

  9. HTML5中的audio在手机端和 微信端的自动播放

    再做H5页面的时候,发现audio在手机端和微信端添加了autoplay以后还是不可以自动播放,这是因为手机端为了节约流浪所设置的 通常解决方法是给一个交互事件,一定要是交互事件 标签:<aud ...

  10. 【转载】C# 中的委托和事件(详解:简单易懂的讲解)

    本文转载自http://www.cnblogs.com/SkySoot/archive/2012/04/05/2433639.html C# 中的委托和事件(详解) C# 中的委托和事件 委托和事件在 ...