Buscando código, cómo usar js para exportar Excel en un formulario que se puede descargar haciendo clic en un botón
Guarde el siguiente código en un archivo .js y luego llame al método extGridToExcel() cuando lo utilice.
var idTmr = "";
función de limpieza() {
window.clearInterval(idTmr();
CollectGarbage();
}
extGridToExcel = function(grid){
intentar{
if(grid){
/****************************************** generar cuadrícula Excel * ***** ***********************************/
var oXL = nuevo ActiveXObject ("Excel.Aplicación");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet
var store = grid.getStore();
var recordCount = store.getCount();
var view = grid.getView()
var cm = grid. getColumnModel();
var colCount = cm.getColumnCount();
var temp_obj = []; colCount; i ){
if(cm.isHidden(i)){
}else{
temp_obj.push(i
);}
}
oSheet.Cells(1, 1).value = ""
var cellvalue = ""
;for(var i = 2; i lt; = temp_obj.length; i ){
cellvalue = cm.getColumnHeader(temp_obj[i - 1]); .Cells(1, i).value = valor de celda
}
for(var i =
1; i lt; = recordCount; i ){
for(var j = 1; jlt; = temp_obj.length; j ){
oSheet.Cells(i 1, j ).value = view.getCell(i-1, temp_obj[j-1]).innerText
}
}
oXL.UserControl = true;
oXL.Visible = falso;
oXL.DisplayAlerts = falso
prueba{
oXL.Save(); /p>
}
catch(e)
{
oXL.Quit();
oXL = nulo;
idTmr = window.setInterval("Limpieza();", 1
return
}
oXL.DisplayAlerts; = verdadero;
oXL.Quit();
oXL = nulo
idTmr = window.setInterval("Limpieza();", 1);
Ext.Msg.alert('Mensaje rápido', '¡Exportación de datos exitosa!');
return
}else{
Ext.Msg.alert('Error', '¡La cuadrícula de datos detallada no se creó correctamente! ');
retorno
}
}
captura(e){
si (e) .message == "El método Guardar de la clase Aplicación no es válido") {
return
}
if(Ext){
<; p> Ext.Msg.show({título: 'Preguntar',
msg: 'Configure el menú de IE\'Herramientas\'-gt; Opciones de Internet-gt; Instalar
Full-gt; Nivel personalizado-gt; \'Inicializar y ejecutar scripts para controles ActiveX que no están marcados como seguros para scripting\'-gt; ¿Seleccionar [Activar] para generar Excel',
botones: Ext.Msg.OK,
icono: Ext.Msg.INFO
});
regresar
}else{ <; /p>
alerta('El marco ExtJs no es compatible');
retorno
}
}
}