Layui表单查询导出

1.前端界面

<!--html-->
<form class="layui-form layui-form-pane form-save" action="">
    <div class="layui-col-xs3 layui-col-sm3 layui-col-md3" style="">
            <textarea name="provider_order_id" class="layui-input"></textarea>
    </div>
    <button class="layui-btn layui-btn-primary layui-btn-md" lay-submit="search" lay-filter="search" id="search" data-type="search">查询</button>
    <button class="layui-btn layui-btn-danger layui-btn-md" lay-submit="export" lay-filter="export" id="export" data-type="export">导出</button>
</form>
// 表单提交
form.on('submit(export)', function(data){
    var parames = new Array();
    parames.push({ name: 'data', value: JSON.stringify(data.field)});
    Post("<?php echo Url::toRoute('url');?>", parames);
    return false;
});

// 跳转后端接口
function Post(URL, PARAMTERS) {
    //创建form表单
    var temp_form = document.createElement("form");
    temp_form.action = URL;
    //如需打开新窗口,form的target属性要设置为'_blank'
    temp_form.target = "_blank";
    temp_form.method = "post";
    temp_form.style.display = "none";
    //添加参数
    for (var item in PARAMTERS) {
        var opt = document.createElement("textarea");
        opt.name = PARAMTERS[item].name;
        opt.value = PARAMTERS[item].value;
        temp_form.appendChild(opt);
    }
    document.body.appendChild(temp_form);
    //提交数据
    temp_form.submit();
}

2.后端业务

/**
 * 接受查询条件和查询
 * */
public function actionExport(){
	if (Yii::$app->request->isPost){
        $post = Yii::$app->request->post('data');
        $post = json_decode($post,true);
        $data1 = $this->getdata($post);
        foreach ($data1['data'] as $k => $d){
            $data[$k]['provider_order_id'] = $d['provider_order_id'];
            // ..
        }
        $this->xlsWriteExcel('orderNum,value','订单号,订单价格',$data);
    }
}

/**
 * 插件导出
 * */
 function xlsWriteExcel($field,$header,$data,$fileName='自定义导出'){
     require_once Yii::getAlias('@vendor') . '/phpxlsxwriter/vendor/autoload.php';
     header("Content-Type: text/html;charset=utf-8");
     error_reporting(E_ALL);
     set_time_limit(0);
     ob_start();
     $sheet = 'Sheet1';
     $writer = new \XLSXWriter();
     $field = explode(',',$field);
     $header = explode(',',$header);
     $header = array_fill_keys($header,"string");
     $styles1 = array(
         'font'=>'宋体','font-size'=>10,'font-style'=>'bold', 'fill'=>'#eee',
         'halign'=>'center','border'=>'left,right,top,bottom'
     );
     $title = array_keys($header);
     $writer->writeSheetRow($sheet, $title, $styles1);
     if(!empty($data)){
         foreach ($data as $k=>$v){
             foreach ($field as $k1=>$v1){
                 if(isset($v[$v1])){
                     $rows[$k1] = $v[$v1].' ';
                 }else{
                     $rows[$k1] = '';
                 }
             }
             $writer->writeSheetRow($sheet, $rows, $styles1);
         }
     }
     $filename = $fileName.date('YmdHis',time()).'.xlsx';
     $tempFile = tempnam(sys_get_temp_dir(), 'excel');
     $writer->writeToFile($tempFile);
     header('Content-Type: application/octet-stream');
     header('Content-Disposition: attachment; filename=' . $filename);
     readfile($tempFile);
     unlink($tempFile);
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_earnest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值