Ext 中转化gird到excel的客户端方法

来源:互联网 发布:超星怎么看网络课 编辑:程序博客网 时间:2024/05/10 23:07

 在浏览器端直接转化grid到excel,可以理由ActiveX方法提取gird,不过只是用于IE5+ +office(Excel),  而且还需要设置IE安全设置。这个方法存在一些问题:1:对于一些设计的grid,第一行可能是空格,2:列宽不能设置。

希望大虾给与指点。。。

Ext.ux.Grid2Excel = {
 
 Save2Excel : function(grid)
 {
  var cm = grid.getColumnModel();
  var store = grid.getStore();
 
  var it = store.data.items;
  var rows = it.length;
 
  var   oXL   =   new   ActiveXObject("Excel.application");    
  var   oWB   =   oXL.Workbooks.Add();    
  var   oSheet   =   oWB.ActiveSheet;
 
  for (var i = 0; i < cm.getColumnCount(); i++) {
  
   if (!cm.isHidden(i)) {
    oSheet.Cells(1, i + 1).value = cm.getColumnHeader(i);
   }
  
   for (var j = 0; j < rows; j++) {
    r = it[j].data;
    var v = r[cm.getDataIndex(i)];
    var fld = store.recordType.prototype.fields.get(cm.getDataIndex(i));
    if(fld.type == 'date')//这个提示错误的时候可以注释掉这个判断。
    {
     v = v.format('Y-m-d');   
    }
   
    oSheet.Cells(2 + j, i + 1).value = v;
   }
  }
        oXL.DisplayAlerts = false;
  oXL.Save();
  oXL.DisplayAlerts = true;                   
  oXL.Quit();
  oXL = null;
    idTmr = window.setInterval("Cleanup();",1);
  }
};

原创粉丝点击