| ????txt?csv??2020-07-28 14:47:54by Webmaster
项目中遇到大数据量输出excel时性能较慢,耗用大量内存,可以考虑采用直接输出txt和csv格式的方式快速导出数据。 1. 导出txt,可在button中加入type='txt'属性即可。 2. 导出csv可参考附件,按附件中readme内容修改系统的auroa-plugin.jar文件。导出方式和输出excel一样,在点击“导出”后弹出选择字段窗口,下面的格式选择csv格式就行。 3. 修改grid-min.js文件,resources\aurora.ui.std\default\grid\Grid-min.js文件中的excel2003替换成csv,且在if判断xls和xlsx后面加上type=='csv'的判断
_export : function(type,filename,separator){
var type1;
if(type =='xls'){
type1='csv';
}else{
type1=type;
}
this.exportOptions = {
type:type1||'csv',
filename:filename,
separator:separator
}
this.showExportConfirm();
}
部分内容可参考如下:
if(type == 'xls' || type== 'xlsx' ){
height+=30;
msg.push('<div class="item-radio" class="item-radio" style="margin:15px;width:270px;height:30px">',
'<div class="item-radio-option" style="width:128px;float:left" itemvalue="csv">',
'<div class="item-radio-img item-radio-img-',type=='csv'?'c':'u','"></div>',
'<label class="item-radio-lb">csv</label>',
'</div>',
'<div class="item-radio-option" style="width:128px;float:left" itemvalue="xlsx">',
'<div class="item-radio-img item-radio-img-',type=='xlsx'?'c':'u','"></div>',
'<label class="item-radio-lb">excel2007</label>',
'</div>',
'</div>')
}
if(type == 'csv' ){
height+=30;
msg.push('<div class="item-radio" class="item-radio" style="margin:15px;width:270px;height:30px">',
'<div class="item-radio-option" style="width:128px;float:left" itemvalue="xlsx">',
'<div class="item-radio-img item-radio-img-',type=='csv'?'c':'u','"></div>',
'<label class="item-radio-lb">csv</label>',
'</div>',
'</div>')
}
4. 有时导出csv是为了避免大数据量导出excel出现内存溢出,所以在导出时可以考虑在弹出页面中去掉excel2007的选项, 或者通过普通按钮调用js实现
如:function sys1234_grid_csvoutput(){
$('sys1234_result_ds_grid')._export('csv','','');
}
Demo Attachments |

Comments
0 Responses to the article暂时没有评论。