<!DOCTYPE html>
|
<html lang="en">
|
<head>
|
<meta charset="UTF-8">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
<title>临时文件</title>
|
<link rel="stylesheet" href="src/css/layui.css">
|
</head>
|
<body>
|
<div id="exp_container"></div>
|
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
|
<script type="text/javascript" src="src/layui.js"></script>
|
<script type="text/javascript" src="js/base.js"></script>
|
<script>
|
var ExpExcel = function() {
|
this.thead = ''; // 表格的头部
|
this.tbody = ''; // 表格的内容
|
this.normal = 1; // 是否为通用的导出
|
this.dataBreak = ''; // 数据分割符
|
this.pageNames = ''; // 工作簿名称
|
this.pageBreak = ''; // 工作簿分隔符
|
this.form = '';
|
this.form = this.initForm();
|
};
|
var prop = ExpExcel.prototype;
|
|
// 初始化
|
prop._init = function(ele, obj) {
|
var defaults = {
|
thead: [],
|
tbody: [],
|
normal: 1,
|
dataBreak: '&',
|
pageNames: ['数据表格'],
|
pageBreak: '$'
|
};
|
|
// 合并对象
|
var opts = $.extend({}, defaults, obj | {});
|
|
this._setThead(obj.thead, opts.pageBreak, opts.dataBreak);
|
this._setTbody(obj.tbody, opts.pageBreak, opts.dataBreak);
|
this._setPageNames(opts.pageNames, opts.pageBreak);
|
|
this.dataBreak = opts.dataBreak;
|
this.pageBreak = opts.pageBreak;
|
this.normal = opts.normal;
|
|
this.form = this.initForm();
|
this._setForm(ele);
|
};
|
|
// 设置页面中的元素
|
prop._setForm = function(ele) {
|
// 更新内容
|
ele.text('');
|
|
var form = $('<form id="exp_excel" action="ExportTable.servlet" method="post"></form>');
|
|
var thead = $('<input type="hidden" id="exp_thead" name="exp_thead" value=""/>');
|
var tbody = $('<input type="hidden" id="exp_tbody" name="exp_tbody" value=""/>');
|
var normal = $('<input type="hidden" id="exp_normal" name="exp_normal" value=""/>');
|
var dataBreak = $('<input type="hidden" id="exp_data_break" name="exp_data_break" value=""/>');
|
var pageNames = $('<input type="hidden" id="exp_page_names" name="exp_page_names" value=""/>');
|
var pageBreak = $('<input type="hidden" id="exp_page_break" name="exp_page_break" value=""/>');
|
|
thead.val(this.thead);
|
tbody.val(this.tbody);
|
normal.val(this.normal);
|
dataBreak.val(this.dataBreak);
|
pageNames.val(this.pageNames);
|
pageBreak.val(this.pageBreak);
|
|
form.append(thead);
|
form.append(tbody);
|
form.append(normal);
|
form.append(dataBreak);
|
form.append(pageNames);
|
form.append(pageBreak);
|
|
ele.append(form);
|
this.form = form;
|
}
|
|
// 设置表格头部的值
|
prop._setThead = function(thead, pageBreak, dataBreak) {
|
var arr = [];
|
// 数据分割
|
for(var i=0; i<thead.length; i++) {
|
var _arr = thead[i].join(dataBreak);
|
arr.push(_arr)
|
}
|
// 工作簿分割
|
var str = arr.join(pageBreak);
|
this.thead = str;
|
};
|
|
// 设置表格内容
|
prop._setTbody = function(tbody, pageBreak, dataBreak) {
|
var arr = [];
|
// 数据分割
|
for(var i=0; i<tbody.length; i++) {
|
var _arr = tbody[i].join(dataBreak);
|
arr.push(_arr)
|
}
|
// 工作簿分割
|
var str = arr.join(pageBreak);
|
this.tbody = str;
|
};
|
|
// 设置工作簿内容
|
prop._setPageNames = function(pageNames, pageBreak) {
|
var str = pageNames.join(pageBreak);
|
this.pageNames = str;
|
}
|
|
// 初始化form
|
prop.initForm = function() {
|
this.form = '12345';
|
}
|
|
// 导出表格
|
prop.xls = function(ele, obj) {
|
|
this._init(ele, obj); // 初始化内容
|
// 导出内容
|
if(this.form == '12345') {
|
alert('没有检测到form表单')
|
}else {
|
this.form.submit();
|
}
|
}
|
|
var expExcel = new ExpExcel();
|
|
var tblData = {
|
thead: [['h1', 'h2', 'h3', 'h4'], ['xh1', 'xh2', 'xh3', 'xh4']],
|
tbody:[['t1', 't2', 't3', 't4'], ['xt1', 'xt2', 'xt3', 'xt3']]
|
}
|
|
expExcel.xls($('#exp_container'), tblData);
|
</script>
|
</body>
|
</html>
|