PHP 文件导出(Excel, CSV,txt)
PHPExcel: 可以在我的文件中下载phpexcel放到项目中用!!
1,Excel 导出:
/**
* Excel导出例子
*/
public function excel($res){
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("XXX");
$objPHPExcel->setActiveSheetIndex();
$objActSheet = $objPHPExcel->getActiveSheet(); $objActSheet->setCellValue('A1', '门店名称');
$objActSheet->setCellValue('B1', '门店UID');
$objActSheet->setCellValue('C1', '交易时间');
$objActSheet->setCellValue('D1', '应收金额');
$objActSheet->setCellValue('E1', '实收金额');
$objActSheet->setCellValue('F1', '支付笔数');
$objActSheet->setCellValue('G1', '取消笔数');
$objActSheet->setCellValue('H1', '应扣手续费');
$objActSheet->setCellValue('I1', '实扣手续费');
$objActSheet->setCellValue('J1', '红包');
$objActSheet->setCellValue('K1', '结算金额'); $i = ;
$data = $res[]; //数据
// $shop_list = $res[1];
$ymd = $res[]; //时间
foreach($data as $k=>$rs){ $objActSheet->setCellValue('A'.$i, !empty($rs['shop_name'])?$rs['shop_name']:''); $objActSheet->setCellValue('B'.$i, $rs['shop_sub_id']);
//交易时间
$objActSheet->setCellValue('C'.$i, $ymd); $objActSheet->setCellValue('D'.$i, !empty($rs['pay_price']) ? $rs['pay_price'] : );
$objActSheet->setCellValue('E'.$i, !empty($rs['jiao']) ? $rs['jiao'] : );
$objActSheet->setCellValue('F'.$i, !empty($rs['count_success']) ? $rs['count_success'] : );
$objActSheet->setCellValue('G'.$i, !empty($rs['count_fail']) ? $rs['count_fail'] : );
$objActSheet->setCellValue('H'.$i, !empty($rs['ought']) ? $rs['ought'] : );
$objActSheet->setCellValue('I'.$i, !empty($rs['reality_poundage']) ? $rs['reality_poundage'] : );
$objActSheet->setCellValue('J'.$i, !empty($rs['rebate']) ? $rs['rebate'] : );
$objActSheet->setCellValue('K'.$i, !empty($rs['jie']) ? $rs['jie'] : ); $i++;
} $fname = 'order_'.time(); ob_end_clean();//清除缓冲区,避免乱码
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="'.$fname.'.xls"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
}
2, CSV导出:
$filename = 'csv_'. time();
$title="标题1,标题2,标题N";
$this->export($filename, $title);
$this->csv($csv_res);
================ 下面是调用方法例子 =============================================================
/**
* 导出csv文件
* @param 文件名 $filename
* @param 数据 $data
* @param 从数据中取指定字段 $fileds
* @param 字段名 多个用逗号分割 $title
* @param 数据量过大标记 $tooMuch
*/
public function export($filename, $title,$tooMuch=){
$filename = @iconv('UTF-8','GBK',$filename.'.csv');
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:attachment;filename=".$filename);
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');
header('Pragma:public');
echo @iconv('UTF-8', 'GBK//IGNORE', $title)."\r\n";
} /**
* [csv 导出数据]
* @param [type] $data [数据]
* @return [type] [description]
*/
private function csv($data)
{
$regex = "/[ '.,:;*?~`!@#$%^&+_=<>{}]|\]|\[|\/|\\|\"|\|/";
if (!empty($data)) {
foreach ($data as $key => $value) {
$value['shop_name']=isset($value['shop_name'])?FuncHelper::escapeEmoji($value['shop_name']):'-';
$address=isset($value['address'])?$value['address']:'-';//门店地址
$shop_name=preg_replace($regex,"",$value['shop_name']);
$board_total = isset($value['board_total']) ? $value['board_total']:"";
$first_login_time = isset($value['first_login_time']) ? date('Y-m-d H:i:s',$value['first_login_time']):"-";
$goods_count = isset($value['goods_count']) ? $value['goods_count']:"";
$pay_sum = isset($value['pay_sum']) ? $value['pay_sum']:""; echo '"'.@mb_convert_encoding($value['id'], 'GBK', 'UTF-8').'",';
echo '"'.@mb_convert_encoding($value['uid'], 'GBK', 'UTF-8').'",';
echo '"'.@mb_convert_encoding($shop_name, 'GBK', 'UTF-8').'",';
echo '"'.@mb_convert_encoding($address, 'GBK', 'UTF-8').'",';
echo '"'.@mb_convert_encoding($board_total, 'GBK', 'UTF-8').'",';
echo '"'.@mb_convert_encoding($first_login_time, 'GBK', 'UTF-8').'",';
echo '"'.@mb_convert_encoding($goods_count, 'GBK', 'UTF-8').'",';
echo '"'.@mb_convert_encoding($pay_sum, 'GBK', 'UTF-8').'",'; echo " \r\n";
}
}
}
另外,如果碰到导出的数字太大的话,表格会默认对数字进行科学计数,像“1.21E + ”这种的,解决方法:只需要在输出的加上 “\t” 即可,例子如下:
echo '"'.@mb_convert_encoding($pay_sum, 'GBK', 'UTF-8'). "\t" . '",'; ## 输出后面加上 \t
3, txt导出
只需要把上面CSV导出的 export方法改一句参数就可以
$filename = @mb_convert_encoding($filename . '.txt', 'GBK', 'UTF-8'); //.csv的文件名改为.txt
// header("Content-type:application/vnd.ms-excel");
header('Content-Type: application/octet-stream'); //上面的改为这句
PHP 文件导出(Excel, CSV,txt)的更多相关文章
- 导出Excel/Pdf/txt/json/XML/PNG/CSV/SQL/MS-Word/ Ms-Powerpoint/等通过tableExport.js插件来实现
首先去我的云盘下载需要的js: 链接:https://pan.baidu.com/s/13vC-u92ulpx3RbljsuadWw 提取码:mo8m 页面代码: <!DOCTYPE html& ...
- PHP 高效导入导出Excel(csv)方法之fgetcsv()和fputcsv()函数
CSV,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件. 一.CSV数据导入函数fgetcsv() fgetcsv() 函数从文件指针中读入一行并解析 CSV ...
- goalng导出excel(csv格式)
最近项目中有个小需求,需要将查询结果导出到excel.之间前java比较容易,使用POI很容易就能实现,查了下golang的文档,发现golang下边并没有导出excel的包,但是却有一个encodi ...
- 文件导出Excel、Word、Pdf
如果要将查询结果导出Excel,只要将页面的Context-Type修改下: header( "Content-Type: application/vnd.ms-excel"> ...
- Java关于读取Excel文件~xlsx xls csv txt 格式文件~持续汇总~
所需的jar百度网盘链接:https://pan.baidu.com/s/146mrCImkZVvi1CJ5KoiEhQ提取码:c329 1 需要导入jar包,缺1不可 dom4j-1.6.1.jar ...
- Salesforce随笔: 将Visualforce Page导出为 Excel/CSV/txt (Display a page in Excel)
想要实现如题所述功能,可以参照 : Visualforce Developer Guide 第57页中所举的例子,在<apex:page>标签中添加contentType属性. <a ...
- Asp.net导出Excel/Csv文本格式数据
刚刚开始做Excel相关的项目,所以遇到的问题不管大小都给记录一下 偶然的机会在添加数据的时候全改成了数字,结果输出的时候全自动变成了科学计数法,这是excel的强大功能,能自动识别数字和字符串,太聪 ...
- Oracle数据库文件导出为CSV格式的方法
1 安装PLSQL Developer,并连接Oracle数据库. 2 执行sql语句,将要导出的表格显示出来. select * from table名; 3 如下点击导出查询结果,选择数据格式,即 ...
- 如何处理大体积 XLSX/CSV/TXT 文件?
在开发过程中,可能会遇到这样的需求,我们需要从本地的 Excel 或 CSV 等文件中解析出信息,这些信息可能是考勤打卡记录,可能是日历信息,也可能是近期账单流水.但是它们共同的特点是数据多且繁杂,人 ...
- php 快速导出大量CSV文件
原文链接 https://segmentfault.com/a/1190000005366832 /** * 导出excel(csv) * @data 导出数据 * @headlist 第一行,列名 ...
随机推荐
- 【文献阅读】Augmenting Supervised Neural Networks with Unsupervised Objectives-ICML-2016
一.Abstract 从近期对unsupervised learning 的研究得到启发,在large-scale setting 上,本文把unsupervised learning 与superv ...
- matlab 学习之常用函数2
-----------------------------author:midu ---------------------------qq:1327706646 ------------------ ...
- python 基础 7.7 json--上
一. 文件json ...
- segnet 编译与测试
segnet 编译与测试参考:http://sunxg13.github.io/2015/09/10/caffe/http://m.blog.csdn.net/lemianli/article/det ...
- American Heritage usaco
基础题,主要思路是找到根,然后分别递归即可: #include<iostream> #include<cstring> #include<string> #incl ...
- nginx日志输出参数记录
摘自: http://www.cnblogs.com/LoveJulin/p/5082363.html nginx服务器日志相关指令主要有两条,一条是log_format,用来设置日志格式,另外一条是 ...
- Java并发知识概述
1.Java内存模型的抽象结构 Java中,所有的实例.静态域和数组元素都存储在堆内存中,堆内存是线程共享的.局部变量,形参,异常处理参数不会在线程之间共享,所以不存在内存可见性问题,也就不受内存模型 ...
- tkinter之canvas(画布)
画布的例子: from tkinter import * root=Tk() root.title('简易绘图') can=Canvas(root,width=400,height=300,bg='# ...
- CSS3实现自定义Checkbox动画
CSS3实现自定义Checkbox动画是一款CSS3自定义checkbox,而且这款checkbox还带有动画效果,当你选中checkbox的时候,会以动画的方式打上一个大大的勾. 源码下载:http ...
- Maven-将jar包安装到本地仓库
因为项目需要,使用的是sqlserver数据库,但是却找不到其对应的pom依赖,所以需要将本地jar包安装到本地仓库,定义pom依赖.以此为例,其他jar包均可参考该方式 cmd命令语句: mvn i ...