问题描述
请教一下,现在要实现一个另存为excel的操作,用户可以自己选择存放excel的路径,但是一直没找到那个控件,还请大家帮指教一下,ext的什么控件可以让用于选择路径. 谢谢!
解决方案
//倒出EXCLE按钮Uo.ExcelButton = Ext.extend(Ext.Button, { initComponent : function(){this.iconCls = 'gk-uo-button-excel'; Uo.ExcelButton.superclass.initComponent.call(this); }, init : function(grid){this.ownerGrid= grid; }, handler:function(){ var cm= this.ownerGrid.getColumnModel(); var buffer = new StringBuffer(); buffer.append("<?xml version="1.0" encoding="UTF-8"?><content><head>"); //列处理 for (var i = 0; i < cm.getColumnCount(); i++){ //if(!cm.isHidden(i)&&this.isIncludeHidden){ if(cm.getColumnHeader(i)!=""&&(!/<(.*)>.*</(.*)>/.test(cm.getColumnHeader(i)))){ buffer.append("<cell>"); buffer.append(cm.getColumnHeader(i)); buffer.append("</cell>"); } //} } buffer.append("</head><dataset>"); //数据 var l = this.ownerGrid.getStore().data.items.length; var items = this.ownerGrid.getStore().data.items; for (var i = 0;i < l; i++) { //写数据行 buffer.append("<row>"); var row=items[i].data; //字段数据 for (var j = 0; j < cm.getColumnCount(); j++) { var cell= row[cm.getDataIndex(j)]; if(cell!="undefined"&&cell!=undefined){ buffer.append("<cell>"); buffer.append(cell); buffer.append("</cell>"); } } buffer.append("</row>"); } buffer.append("</dataset></content>"); if (!Ext.fly('exportfrmDummy')) { var frm = document.createElement('form'); frm.id = 'exportfrmDummy'; frm.name = id; frm.className = 'x-hidden'; document.body.appendChild(frm); } Ext.Ajax.request({ url: Uo.getContextPath("/exportExcelDocument.action"), method : 'POST', form: Ext.fly('exportfrmDummy'), callback: function(o, s, r){ Uo.Msg(r.responseText); }, isUpload: true, params: { data: buffer.toString()} }); }});Ext.reg('uoexcelbutton', Uo.ExcelButton);