为什么要导出 txt 和 csv文件
当遇到上十万及百万数据量时,导出会非常慢,经常会导不出来。如修改为 txt 和 csv 则会快很多
如何输出 txt 和 csv 文件
项目中遇到大数据量输出 excel 时性能较慢,耗用大量内存,可以考虑采用直接输出 txt 和 csv 格式的方式快速导出数据。
- 导出 txt,可在 button 中加入 type='txt' 属性即可。
- 导出 csv 可参考附件,按附件中 readme 内容修改系统的 auroa-plugin.jar 文件。导出方式和输出 excel 一样,在点击 “导出” 后弹出选择字段窗口,下面的格式选择 csv 格式就行。
- 修改 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>')
}
- 有时导出 csv 是为了避免大数据量导出 excel 出现内存溢出,所以在导出时可以考虑在弹出页面中去掉 excel2007 的选项, 或者通过普通按钮调用 js 实现
``javascript
如:function sys1234_grid_csvoutput(){
$('sys1234_result_ds_grid')._export('csv','','');
}
```