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);
}
原文地址:https://blog.csdn.net/qq_24973351/article/details/142603120
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!