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. java多线程那些事之中的一个

    1.  Callable 接口 获取线程运行状态(get.get(long timeout)),取消线程(cancel(boolean  mayinterruptifrunning)).isCance ...

  2. 基于传统IPC基础上的RTMP互联网推流摄像机方案设计

    在我之前的一篇博客<EasyRTMP内置进入摄像机中实现网络推流直播摄像机的功能>中,我阐述了一种将RTMP推流内置到摄像机系统内部,实现安防摄像机转互联网直播的RTMP推流摄像机功能,如 ...

  3. Moving Computation is Cheaper than Moving Data

    https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html Introduction The Hadoop Distributed File Syst ...

  4. mysql系列之8.mysql高可用 (mha4mysql)

    环境: 三台机器 主服务器: 192.168.1.130 主备机器: 192.168.1.131 监控机器: 192.168.1.132 130和131, 是mysql双主架构 1.在三台机器上安装m ...

  5. Python文件编码不可以使用UTF16

    1. The complete Python source file should use a single encoding. Embedding of differently encoded da ...

  6. linux c编程:gdb的使用

    首先用一个简单的打印字符的程序来做下示例 #include<stdio.h>#include<string.h>void main(){    int i=0;    char ...

  7. (转)扫盲--JavaScript的立即执行函数

    看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数.立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们 ...

  8. com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '88888888' for key 'PRIMARY'

    严重: Servlet.service() for servlet jsp threw exceptioncom.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityC ...

  9. IDA调试android so的.init_array数组

    参考: http://www.itdadao.com/articles/c15a190757p0.html 一. 为什么要调试init_array init_array的用途 1. 一些全局变量的初始 ...

  10. P5111 zhtobu3232的线段树

    P5111 zhtobu3232的线段树 维护左子树右子树的贡献和跨区间贡献 #include<bits/stdc++.h> using namespace std; typedef lo ...