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)的更多相关文章

  1. 导出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& ...

  2. PHP 高效导入导出Excel(csv)方法之fgetcsv()和fputcsv()函数

    CSV,是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件. 一.CSV数据导入函数fgetcsv() fgetcsv() 函数从文件指针中读入一行并解析 CSV ...

  3. goalng导出excel(csv格式)

    最近项目中有个小需求,需要将查询结果导出到excel.之间前java比较容易,使用POI很容易就能实现,查了下golang的文档,发现golang下边并没有导出excel的包,但是却有一个encodi ...

  4. 文件导出Excel、Word、Pdf

    如果要将查询结果导出Excel,只要将页面的Context-Type修改下: header( "Content-Type: application/vnd.ms-excel"> ...

  5. Java关于读取Excel文件~xlsx xls csv txt 格式文件~持续汇总~

    所需的jar百度网盘链接:https://pan.baidu.com/s/146mrCImkZVvi1CJ5KoiEhQ提取码:c329 1 需要导入jar包,缺1不可 dom4j-1.6.1.jar ...

  6. Salesforce随笔: 将Visualforce Page导出为 Excel/CSV/txt (Display a page in Excel)

    想要实现如题所述功能,可以参照 : Visualforce Developer Guide 第57页中所举的例子,在<apex:page>标签中添加contentType属性. <a ...

  7. Asp.net导出Excel/Csv文本格式数据

    刚刚开始做Excel相关的项目,所以遇到的问题不管大小都给记录一下 偶然的机会在添加数据的时候全改成了数字,结果输出的时候全自动变成了科学计数法,这是excel的强大功能,能自动识别数字和字符串,太聪 ...

  8. Oracle数据库文件导出为CSV格式的方法

    1 安装PLSQL Developer,并连接Oracle数据库. 2 执行sql语句,将要导出的表格显示出来. select * from table名; 3 如下点击导出查询结果,选择数据格式,即 ...

  9. 如何处理大体积 XLSX/CSV/TXT 文件?

    在开发过程中,可能会遇到这样的需求,我们需要从本地的 Excel 或 CSV 等文件中解析出信息,这些信息可能是考勤打卡记录,可能是日历信息,也可能是近期账单流水.但是它们共同的特点是数据多且繁杂,人 ...

  10. php 快速导出大量CSV文件

    原文链接 https://segmentfault.com/a/1190000005366832 /** * 导出excel(csv) * @data 导出数据 * @headlist 第一行,列名 ...

随机推荐

  1. 献给写作者的 Markdown 新手指南及语法

    烈推荐所有写作者学习和掌握该语言.为什么?可以参考: 『为什么作家应该用 Markdown 保存自己的文稿』. 『Markdown写作浅谈』 让你专注于文字而不是排版. 标题 只需要在文本前面加上 # ...

  2. CocoaPods Podfile详解与使用

    1.为什么需要CocoaPods 在进行iOS开发的时候,总免不了使用第三方的开源库,比如SBJson.AFNetworking.Reachability等等.使用这些库的时候通常需要: 下载开源库的 ...

  3. JavaScript -- 没事看看

    @.delete 原文:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/delete

  4. 模式识别之svm()---支持向量机svm 简介1995

    转自:http://www.blogjava.net/zhenandaci/archive/2009/02/13/254519.html 作者:Jasper 出自:http://www.blogjav ...

  5. 阿里云Opensearch数据类型

    阿里云主要支持以下数据类型,详情参考:https://help.aliyun.com/document_detail/29121.html 类型 说明 INT int64整型 INT_ARRAY in ...

  6. 【BZOJ3291】Alice与能源计划 二分图最大匹配

    [BZOJ3291]Alice与能源计划 Description 在梦境中,Alice来到了火星.不知为何,转眼间Alice被任命为火星能源部长,并立刻面临着一个严峻的考验. 为了方便,我们可以将火星 ...

  7. hibernate_sequence.nextval 序列不存在

    1: 使用oracle数据库时,hibernate配置bean文件时,在*.hbm.xml中配置主键生成策略为sequence,却没有指定sequence 2: <param name=&quo ...

  8. YxdJSON - Delphi 高性能 JSON 库(支持RTTI和序列化操作)

    源:YxdJSON - Delphi 高性能 JSON 库(支持RTTI和序列化操作) Delphi 高性能 JSON 库(支持RTTI和序列化操作) 支持平台: Windows, Android, ...

  9. 小米系列手机调试Installation failed with message Failed to establish session

    用Android studio 2.3调度程序时提示"Installation failed with message Failed to establish session"错误 ...

  10. Discuz X3游客看小图功能导致文字内容隐藏的【修复方法】

    如果帖子内容以图片开始,并且开启了游客看小图功能,那么图片下面的文字也会被隐藏,这是不科学的(在图片上边的文字不会被隐藏)查看DZ源代码,发现是程序猿疏忽漏掉了</div> 下边1314学 ...