导出EXCEL 没有乱码,已确认可以使用, 转自csdn

此段代码,转自csdn/**
     * @creator Jimmy
     * @data 2018/1/05
     * @desc 数据导出到excel(csv文件)
     * @param $filename 导出的csv文件名称 如date("Y年m月j日").‘-test.csv‘
     * @param array $tileArray 所有列名称
     * @param array $dataArray 所有列数据
     */
    public  function exportToExcel($filename, $tileArray=[], $dataArray=[]){
        ini_set(‘memory_limit‘,‘512M‘);
        ini_set(‘max_execution_time‘,0);
        ob_end_clean();
        ob_start();
        header("Content-Type: text/csv");
        header("Content-Disposition:filename=".$filename);
        $fp=fopen(‘php://output‘,‘w‘);
        fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF));//转码 防止乱码(比如微信昵称(乱七八糟的))
        fputcsv($fp,$tileArray);
        $index = 0;
        foreach ($dataArray as $item) {
            if($index==1000){
                $index=0;
                ob_flush();
                flush();
            }
            $index++;
            fputcsv($fp,$item);
        }

        ob_flush();
        flush();
        ob_end_clean();
    }

调用方法
	    $ssssd = [1=>‘正常 未兑换‘,2=>‘正常 已兑换‘,3=>‘正常 过期‘,4=>‘正常商家已提现‘,5=>‘作废‘];
            $count      = $res->alias(‘l‘)->where($where)->count();// 查询满足要求的总记录数

            $Page       = new \Think\Page($count,10000);// 实例化分页类 传入总记录数和每页显示的记录数(25)
            $ppp = ceil($count/10000);
            $pp = range(1,$ppp);
            foreach ($pp as $kkk => $vvv) {
                $rs[$kkk] = $res->field(‘l.id lid,l.user_id,l.shop_id,l.code_num,l.code_src,l.winning_time,l.exchange_time,l.status,l.item_id iid,i.title,i.money,s.coder,u.nickname,u.head,s.manager,s.phone‘)->alias(‘l‘)->where($where)->join(‘sd_item i ON i.id=l.item_id‘)->join(‘left join  sd_shop s ON s.id=l.shop_id‘)->join(‘sd_user u ON u.id=l.user_id‘)->page($vvv.‘, 10000‘)->select();

                $str[$kkk] = "用户昵称,兑奖门店号,核销员,核销员手机号,中奖时间,兑换时间,奖项名称,中奖金额,中奖码,兑换状态";

                $exl11[$kkk] = explode(‘,‘,$str[$kkk]);
                foreach ($rs[$kkk] as $k => $v){

                    if (!$v[‘nickname‘]) $v[‘nickname‘]           = ‘暂无数据‘;
                    if (!$v[‘coder‘]) $v[‘coder‘]                 = ‘暂无数据‘;
                    if (!$v[‘manager‘]) $v[‘manager‘]             = ‘暂无数据‘;
                    if (!$v[‘phone‘]) $v[‘phone‘]                 = ‘暂无数据‘;
                    if (!$v[‘winning_time‘]) $v[‘winning_time‘]   = ‘暂无数据‘;
                    if (!$v[‘exchange_time‘]) $v[‘exchange_time‘] = ‘暂无数据‘;
                    if (!$v[‘title‘]) $v[‘title‘]                 = ‘暂无数据‘;
                    if (!$v[‘money‘]) $v[‘money‘]                 = ‘暂无数据‘;

                    $exl[$kkk][] = array(
                        $v[‘nickname‘],$v[‘coder‘],$v[‘manager‘],$v[‘phone‘],$v[‘winning_time‘],$v[‘exchange_time‘],$v[‘title‘],$v[‘money‘],$ssssd[$v[‘status‘]]
                    );

                }

                $this->exportToExcel(‘兑奖记录_‘.time().$vvv.‘.csv‘,$exl11[$kkk],$exl[$kkk]);
            }
            exit();

  


  

原文地址:https://www.cnblogs.com/thinkbig/p/10625307.html

时间: 2024-11-10 09:49:17

导出EXCEL 没有乱码,已确认可以使用, 转自csdn的相关文章

asp.net 导出excel 中文乱码解决方法 (转)

用我转载的上一篇文章 Asp.net中把DataTable或DataGrid导出为Excel 导出的文档,中文有乱码现象,其实要解决中文乱码很简单,设置一下字符集.如下: // 设置编码和附件格式 curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312&

Django导出excel中文乱码解决方案

Django官方文档有关于怎么生成csv文件的方法 import csv from django.http import HttpResponse def some_view(request): # Create the HttpResponse object with the appropriate CSV header. response = HttpResponse(content_type='text/csv') response['Content-Disposition'] = 'at

IE下导出EXCEL出现乱码的解决方法

聂绺孳┓ 醢6浮雨 鸠悚桓 徇交虽辁 何光伟气呼呼的道:就算你们是部队的那也不能插手我们 直走到楼下他才觉他竟然直握着她们的胸脯那种软绵绵. 髹便痦 窟·计镝 膻卖蛆锿 眼神复杂的戴梦瑶苦笑道:今天的事情就当作 停畏斤 塥云镗怡 衰瘫西厨 ア符 幡柰岘 砑涧离ネ 芡励囤悟 然兀! 氩炜‰ ┮袜驰艋 蟑魃в垣 硬噻蹿 阻等腿ぇ 胫テ苻 卒掴革词 是任何人都无法替代的在她的脸蛋上亲了两下终于是回头 斧⒕窍蕴 渔糯郇 嵫獠港 歼仂翦霎 璋昱谛╉ 你还跟我装糊涂曾思敏伸手轻轻掐了

FineUI导出Excel

1.[经验分享]导出Excel的乱码问题http://www.fineui.com/bbs/forum.php?mod=viewthread&tid=6326&highlight=Excel 找到问题的解决办法了  在输出的文件里添加      sb.Append("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=UTF-8\"/>

spring boot使用AbstractXlsView导出excel

一.maven依赖jar包 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version> </dependency> 1 2 3 4 5 二.导出view public class ExportMemberVo { private String name; pri

初探:使用NPOI导出Excel(已有Excel模板)

/// <summary> /// 应用开源NPOI,导出Excel /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnNPOIExport_Click(object sender, EventArgs e) { if (!File.Exists(sExePa

Asp.net导出Excel乱码的解决方法

通过跟踪Asp.net服务器代码,没有乱码,然而导出Excel到浏览器后,打开时出现乱码. 解决方法是添加编码格式的前缀字节码:Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble()); ? 1 2 3 4 5 6 7 8 9 10 11 12 13 Response.Clear(); Response.AddHeader("content-disposition","attachment;filenam

Java web中不同浏览器间导出Excel文件名称乱码问题解决方案

问题描述: 对于不同浏览器存在对中文编码格式问题,从而在导出Excel文件时,中文文件名出现乱码的情况,即在程序中给要导出的文件指定一个中文名字时,在浏览器上出现的下载框中的文件名出现了乱码,解决如下: 解决方案: [java] view plain copy Date dt=new Date();//如果不需要格式,可直接用dt,dt就是当前系统时间 DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//设置显示格

Java导出Excel表(poi)名中文乱码问题处理

<pre name="code" class="java">String _filename = ValidateTools.date2Str(date, "yyyyMMddHHmmss"); String filename = f_name + _filename; HSSFSheet sheet; HSSFCell cell; response.setContentType("application/x-download