前言:
今天工作很闲,无意中发现同事做的一个动态导出功能,之前自己也利用POI做过excle的导出功能,但都是通过提前 定义导出文件,写死要导出的字段,在访问数据库获取导出信息,在写入excle的方式,这次同事要做的和我之前做的效果有点不一样,他是需要根据客户自己的需要,选取要导出的字段,动态的生成excle文件的需求,因为自己不知道要如何实现,所以趁着闲暇,细细的研究了一下他的实现过程,再次做个总结,权当学习,当然也希望能够帮助到那些正在忧愁不知道如何实现这个功能的小伙伴。
一、实现效果:
点击页面的导出功能,弹出一个dalig对话框,对话框显示出可以导出的的所有字段,勾选要导出的字段,点击确定按钮,实现将选中字段在数据库中存储的信息导出到excle中。
二、实现效果图:
导出文件如下:
打开excle内如如下:
三、实现代码:
3.1 、 前端代码:
3.1.1、 导出按钮实现:
/**
*操作按钮
*/
var toolbar = [{
id:'hpms_ht_export',
text:'导出',
iconCls:'icon-tip',
handler:function(){
selectExportCloumn();
},
disabled:false}
];
/**
选择要导出的列
**/
function selectExportCloumn(){
$("#exportColumnDialog").dialog("open");
}
3.1.2 对话框的实现代码:
<div id="exportColumnDialog" class="easyui-dialog" title="请选择要导出的信息" style="width:900px;height:400px;"
data-options="iconCls:'icon-save',resizable:true,modal:true">
<table id="columnGridObject" >
<tr height="40px;">
<td style="width: 130px;"> <input type="checkbox" name="exportColumn" value="ID_NO;证件号码"/>证件号码</td>
<td style="width: 130px;"> <input type="checkbox" name="exportColumn" value="NAME;姓名"/>姓名</td>
<td style="width: 130px;"> <input type="checkbox" name="exportColumn" value="GENDER_CODE;性别"/>性别</td>
<td style="width: 130px;"> <input type="checkbox" name="exportColumn" value="BIRTH_DATE;出生日期"/>出生日期</td>
<td style="width: 130px;"> <input type="checkbox" name="exportColumn" value="MARITAL_ST_CODE;婚姻状况"/>婚姻状况</td>
<td style="width: 130px;"> <input type="checkbox" name="exportColumn" value="NATION_CODE;民族"/>民族</td>
<td style="width: 130px;"> <input type="checkbox" name="exportColumn" value="JOB_NUMBER;工号"/>工号</td>
</tr>
<tr he