excel的导出功能

1.导出功能的js
{template nheader.html}
<script type="text/javascript"> 
function export_excel(){
    
    var excel = top.dialog({
title: lang["tips"],
fixed: true,
content: '<img src="/statics/js/skins/icons/question.png"> {fc_lang("您确定要这样操作吗?")}',
okValue: lang['ok'],
ok: function () {
var _data = $("#myform").serialize();
if ((_data.split('ids')).length-1 <= 0) {
excel.close().remove();
dr_tips(lang['select_null'], 2);
return true;
}
window.location.href="/index.php?c=diy&m=export_excel&data="+_data;
},
cancelValue: lang['cancel'],
cancel: function () {}
});
excel.show();
};function dr_confirm_move() {
var d = top.dialog({
title: lang["tips"],
fixed: true,
content: '<img src="/statics/js/skins/icons/question.png"> {fc_lang("您确定要这样操作吗?")}',
okValue: lang['ok'],
ok: function () {
$('#action').val('move');
var _data = $("#myform").serialize();
var _url = window.location.href;
if ((_data.split('ids')).length-1 <= 0) {
d.close().remove();
dr_tips(lang['select_null'], 2);
return true;
}
// 将表单数据ajax提交验证
$.ajax({type: "POST",dataType:"json", url: _url, data: _data,
success: function(data) {
d.close().remove();
//验证成功
if (data.status == 1) {
dr_tips(data.code, 3, 1);
$("input[name='ids[]']:checkbox:checked").each(function(){
$.post("{$html_url}c=show&m=create_html&id="+$(this).val(), {}, function(){});
});
$.post("{$html_url}c=category&m=create_html&id="+$('#move_id').val(), {}, function(){});
setTimeout('window.location.reload(true)', 3000); // 刷新页
return true;
} else {
dr_tips(data.code, 3, 2);
return true;
}
},
error: function(HttpRequest, ajaxOptions, thrownError) {
alert(HttpRequest.responseText);
}
});
},
cancelValue: lang['cancel'],
cancel: function () {}
});
d.show();
}
function dr_status(id, v) {
var title = "";
if (v == 9) {
title = "<font color=red><b>{fc_lang('您确定要将它关闭吗?')}</b></font>";
} else {
title = "<font color=blue><b>{fc_lang('您确定要将它开启吗?')}</b></font>";
}
var d = top.dialog({
title: lang["tips"],
fixed: true,
content: '<img src="/statics/js/skins/icons/question.png"> '+title,
okValue: lang['ok'],
ok: function () {
$.ajax({type: "POST",dataType:"json", url: "{dr_url(APP_DIR.'/home/status')}&id="+id+"&v="+v, success: function(data) {
//验证成功
if (data.status == 1) {
dr_tips(data.code, 3, 1);
if (data.id) {
$.post("{$html_url}c=show&m=create_html&id="+id, {}, function(){});
$.post("{$html_url}c=category&m=create_html&id="+data.id, {}, function(){});
}
setTimeout('window.location.reload(true)', 3000); // 刷新页
} else {
dr_tips(data.code);
}
},
error: function(HttpRequest, ajaxOptions, thrownError) {
alert(HttpRequest.responseText);
}
});
return true
},
cancelValue: lang['cancel'],
cancel: function () {}
});
d.show();
}
function dr_ts() {
    var v = $("#myform").serialize();
    if ((v.split('ids')).length-1 <= 0) {
        dr_tips(lang['select_null'], 2);
        return true;
    }
    var url = "{dr_url(APP_DIR.'/home/ts_ajax')}";
    art.dialog.open(url, { title: '{fc_lang("推送")}',
        ok: function () {
            var iframe = this.iframe.contentWindow;
            if (!iframe.document.body) {
                alert('iframe loading')
                return false;
            };
            var tab = iframe.$('#dr_tab').val();
            var url = "{dr_url(APP_DIR.'/home/ts_ajax')}";
            url+='&ispost=1&tab='+tab;
            if (tab == 1) {
                // 推荐位
                var id = iframe.document.getElementsByName('dr_flag');
                var value = new Array();
                for (var i = 0; i < id.length; i++){
                    if (id[i].checked) {
                        value.push(id[i].value);
                    }
                }
                $.ajax({type: "POST", url:url+'&value='+value, data:v, dataType:'json', success: function (data) {
                    if (data.status == 1) {
                        dr_tips(data.code, 3, 1);
                        setTimeout('window.location.reload(true)', 3000); // 刷新页
                    } else {
                        dr_tips(data.code);
                    }
                }});
            } else if (tab == 2) {
var id = iframe.document.getElementsByName('weixin');
var value = new Array();
for (var i = 0; i < id.length; i++){
if (id[i].checked) {
value.push(id[i].value);
}
}
var url = "{dr_url('weixin/ts', array('mid'=>APP_DIR))}&"+v;
window.location.href = url;
            } else if (tab == 0) {
                var o = iframe.document.getElementById("dr_synid");  
  var str = "";  
  for(i=0;i<o.length;i++){     
if(o.options[i].selected){  
str+=o.options[i].value+",";  
}  
}  
$.ajax({type: "POST", url:url+'&value='+str, data:v, dataType:'json', success: function (data) {
                    if (data.status == 1) {
                        dr_tips(data.code, 3, 1);
                        setTimeout('window.location.reload(true)', 3000); // 刷新页
                    } else {
                        dr_tips(data.code);
                    }
                }});
            }
            return true;
        },
        cancel: true
    });
    return;
}
</script>
<div class="page-bar">
<div class="page-toolbar pull-left">
<div class="btn-group">
<button type="button" class="btn blue btn-sm btn-outline dropdown-toggle" data-toggle="dropdown" data-hover="dropdown">
{$meta_name}
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu" role="menu">
<li>
<a href="{$list_url}"> {fc_lang("已通过内容")} </a>
</li>
{if $flags}
<li class="divider"> </li>
{loop $flags $t}
<li>
<a href="{$t.url}"> {fc_lang($t.name)} </a>
</li>
{/loop}
{/if}
</ul>
</div>
<a href="{$post_url}" class="btn btn-sm green"> {fc_lang('发布')}
<i class="fa fa-plus"></i>
</a>
</div>
<div class="page-toolbar">
<div class="btn-group pull-right">
<button type="button" class="btn green btn-sm btn-outline dropdown-toggle" data-toggle="dropdown" aria-expanded="false" data-hover="dropdown"> {fc_lang('操作菜单')}
<i class="fa fa-angle-down"></i>
</button>
<ul class="dropdown-menu pull-right" role="menu">
<li>
<a href="{dr_url(APP_DIR.'/home/index')}"><i class="icon-table"></i> {fc_lang('全部内容')}</a></li>
</li>
<li>
<a href="{$ci->duri->uri2url($post)}"> <i class="fa fa-plus"></i> {fc_lang('发布')}</a>
</li>
<li class="divider"> </li>
{loop $menu.quick $t}
<li>
<a href="{$t.url}">{$t.icon} {$t.name}</a>
</li>
{/loop}
<li class="divider"> </li>
<li>
<a href="javascript:window.location.reload();">
<i class="icon-refresh"></i> {fc_lang('刷新页面')}</a>
</li>
</ul>
</div>
</div>
</div>
{if $flag}
<h3 class="page-title">
<small>{fc_lang('推荐位用于对文档进行归档管理,如首页幻灯,今日视点,首页头条等等')}</small>
</h3>
{else}
<div class="mytopsearch">
<form method="post" class="row" action="" name="searchform" id="searchform">
<input name="search" id="search" type="hidden" value="1" />
<div class="col-md-12">
<label style="padding-right: 5px;">{$select2}</label>
<label style="padding-right: 10px;"><i class="fa"></i></label>
<label>
<select name="data[field]" class="form-control">
<option value="id" {if $param.field=='id'}selected{/if}>Id</option>
{loop $field $t}
{if $t.ismain && $t.fieldname != 'inputtime' && $t.fieldname != 'updatetime'}
<option value="{$t.fieldname}" {if $param.field==$t.fieldname}selected{/if}>{$t.name}</option>
{/if}
{/loop}
</select>
</label>
<label><i class="fa fa-caret-right"></i></label>
<label style="padding-right: 20px;"><input type="text" class="form-control" placeholder="{fc_lang('多个Id可以用“,”分隔')}" value="{$param['keyword']}" name="data[keyword]" /></label>
<label>{fc_lang('录入时间')} :</label>
<label>{dr_field_input('start', 'Date', array('option'=>array('format'=>'Y-m-d','width'=>'110')), (int)$param.start)}</label>
<label><i class="fa fa-minus"></i></label>
<label style="margin-right:10px">{dr_field_input('end', 'Date', array('option'=>array('format'=>'Y-m-d','width'=>'110')), (int)$param.end)}</label>
<label><button type="submit" class="btn green btn-sm" name="submit" > <i class="fa fa-search"></i> {fc_lang('搜索')}</button></label>
</div>
</form>
</div>
{/if}
<form action="" method="post" name="myform" id="myform">
<input name="action" id="action" type="hidden" value="" />
<div class="portlet mylistbody">
<div class="portlet-body">
<div class="">
{load $list_data_tpl}
</div>
</div>
</div>
</form>
<div id="pages"><a>{fc_lang('共%s条', $param.total)}</a>{$pages}</div>
{template nfooter.html}
2.导出功能的php接口
<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');
/* v3.1.0  */
 
class Diy extends M_Controller {
//导出功能
public function export_excel() {
        $filed = [
            
            '产品编号', 
            '商品(中文名称)', 
            '商品(英文名称)', 
            '标准值', 
            '品牌',
            'CAS号', 
            '规格', 
            '货期', 
            '有效期', 
            '研制单位', 
            '说明',
            '标准价', 
            '专属价', 
            '进价', 
            '批次号', 
            '库存'
        ];
        
        $ids = $this->input->get('ids');
       
        $data =$this->db->select('*')->from('imt_1_mall')->where_in('id',$ids)->get();
        $temppath = 'cache/export/' . date('Y-m-d H:i:s', time()). rand(0, 9999) . '.csv';
        $f = fopen(WEBPATH . $temppath, 'w');
        fputcsv($f, $filed);
        while ($row = $data->unbuffered_row()) {
            $row = (array)$row;
            fputcsv($f,[
                $row['cpbh'],$row['title'],$row['goods_ename'],$row['zhiliangnongdu'],$row['pinpai'],$row['cashao'],$row['guige'],$row['huoqi'],
                $row['youxiaoqi'],$row['yanzhidanwei'],$row['description'],$row['biaozhunjia'],$row['zhuanshujia'],$row['jinjia'],
                $row['picihao'],$row['order_quantity']
            ]);
        }
        fclose($f);
        header("Content-Type: text/csv");
        header("Location: /$temppath");
}
}
有帮助(- 没帮助(-