| ????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暂时没有评论。