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. 【UML】NO.49.EBook.5.UML.1.009-【UML 大战需求分析】- 包图(Package Diagram)

    1.0.0 Summary Tittle:[UML]NO.49.EBook.1.UML.1.009-[UML 大战需求分析]- 包图(Package Diagram) Style:DesignPatt ...

  2. Elasticsearch6.13 升级6.24 单节点停机升级

    Elasticsearch6.x 升级6.y 是支持滚动升级的,目前我们测试环境只有一个节点只能停机升级了 准备工作 禁用分片分配 curl -X PUT "localhost:9200/_ ...

  3. node微信公众号开发---自动回复

    微信开发的特点:1.post请求 (一定要注意,这里和配置域名的时候不一样,配置域名是get请求)2.数据包是xml格式的3.你给微信返回的数据也是xml格式的 var parseString = r ...

  4. Navicat 连接Oracle11g时出现ORA-12514:TNS:no listener

    前两天做系统时用navicat连接Oracle数据库还好好的,今天一连突然就开始报ORA-12514:TNS:no listener.然后看网上大部分教程需要改listener.ora文件中的 将HO ...

  5. 用xshell 连接docker Linux服务器

    用xshell 连接docker Linux服务器

  6. iOS UI基础-10.0 QQ聊天布局之键盘及文本使用

    要实现的效果:   这里只说用到的几个知识点 1.图片包含文字 在设置文字的Frame的时候,使用背景(按钮)的尺寸,文字使用了内边距 背景图片,使用拉伸 /** * 返回一张可以随意拉伸不变形的图片 ...

  7. Uncaught DOMException: Blocked a frame with origin "http://localhost

    ajaxFileUpload上传时报错 :Uncaught DOMException: Blocked a frame with origin "http://localhost..... ...

  8. LeetCode28.实现strStr()

    实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始).如果不存在,则返 ...

  9. not value specified for parameter问题解决方案

    前段时间遇到这个问题找了半天没有找到,今天又调试了突然发现出现这个问题的根本原因是sql语句中的参数没有赋值或者参数类型与数据库字段类型不匹配所导致的. 例如: String sql = " ...

  10. PLSQL乱码

    PLSQL乱码 博客分类: oracle oracleplsql乱码  问题:PL/SQL插入和更新乱码. 解决乱码问题需要关注的三点: 1. Oracle数据库内部的字符集 2. Oracle客户端 ...