Excel y VBScript
Hace unos días te consulté cómo acceder a un fichero excel desde la web. Me enviaste el siguiente código de VBScript: (he quitado el html)
******
strNombre = "123"
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set wbLibro = objExcel.WorkBooks.Add
With wbLibro
.WorkSheets(1).Cells(1,1).Value= strNombre
.SaveAs "C:\Mis documentos\Prueba.xls"
.Close
End With
objExcel.Quit
Set wbLibro = Nothing
Set objExcel = Nothing
************
Bien. Cuando abro este script desde mi disco cpon el Explorer todo funciona perfectamente. Sin embargo, cuando lo coloco en mi servidor, me aparece un error en tiempo de ejecución indicando que el activeX no puede crear el objeto Excel Application. He probado a bajar el nivel de seguridad del Explorer al mínimo para que acepte activeX sin firmar y entonces funciona correctamente. Pero claro, no puedo pedirle a varios miles de usuarios que hagan esto. ¿Cómo podría solucionarlo? La verdad es que no sé casi nada de active X.
Pero, en realidad y al margen de lo anterior, lo que yo deseo hacer no es crear una aplicación excel desde la nada. En realidad lo que deseo hacer es lo siguiente:
Abrir localmente en el cliente una copia de un documento excel que está en mi servidor. Esta copia se abriría mediante una popup con window. Open. En este documento excel escribiría, por código, información que el cliente ha ido recolectando por la web. El documento se guardaría en el disco del cliente.
Veamos entonces esta línea:
Set objExcel = CreateObject("Excel.Application")
¿Cómo hago para que objExcel tenga una referencia al documento excel abierto en la popup y no al resultado de llamar a la función CreateObject?.
Juro que he buscado pero no he encontrado la respuesta. :-)
******
strNombre = "123"
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set wbLibro = objExcel.WorkBooks.Add
With wbLibro
.WorkSheets(1).Cells(1,1).Value= strNombre
.SaveAs "C:\Mis documentos\Prueba.xls"
.Close
End With
objExcel.Quit
Set wbLibro = Nothing
Set objExcel = Nothing
************
Bien. Cuando abro este script desde mi disco cpon el Explorer todo funciona perfectamente. Sin embargo, cuando lo coloco en mi servidor, me aparece un error en tiempo de ejecución indicando que el activeX no puede crear el objeto Excel Application. He probado a bajar el nivel de seguridad del Explorer al mínimo para que acepte activeX sin firmar y entonces funciona correctamente. Pero claro, no puedo pedirle a varios miles de usuarios que hagan esto. ¿Cómo podría solucionarlo? La verdad es que no sé casi nada de active X.
Pero, en realidad y al margen de lo anterior, lo que yo deseo hacer no es crear una aplicación excel desde la nada. En realidad lo que deseo hacer es lo siguiente:
Abrir localmente en el cliente una copia de un documento excel que está en mi servidor. Esta copia se abriría mediante una popup con window. Open. En este documento excel escribiría, por código, información que el cliente ha ido recolectando por la web. El documento se guardaría en el disco del cliente.
Veamos entonces esta línea:
Set objExcel = CreateObject("Excel.Application")
¿Cómo hago para que objExcel tenga una referencia al documento excel abierto en la popup y no al resultado de llamar a la función CreateObject?.
Juro que he buscado pero no he encontrado la respuesta. :-)
1 Respuesta
Respuesta de valedor
2