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. :-)
Respuesta
2
Como te decía en mi anterior respuesta, no me gusta usar las aplicaciones de Office desde la web, ademas de que no cuento con un servidor desde el cual poder hacer pruebas...
Si lo que quieres es hacer referencia a un archivo existente podrías hacerlo de dos formas
Set objExcel = CreateObject("Excel.Application")
Set wbLibro = objExcel.WorkBooks.Open("C:\Ruta de acceso al archivo")
o bien
Set objExcel = GetObject("C:\Ruta de acceso al archivo")
Esto funciona perfectamente a nivel local y en una red local, pero como te dijo, no tengo la oportunidad de hacer pruebas en un servidor Web, siento no poder ayudarte más al respecto, ¿ya visitaste la página de Microsoft?, tal vez haya algo ahí...
Estuve haciendo unas pruebas, tal vez te sirva esto, te agradecería, si estas satisfecha con la respuesta, la finalizaras, gracias...
<HTML>
<HEAD>
</HEAD>
<BODY>
<script language="VBScript">
Set objApp = CreateObject("Excel.Application")
Set objLibro = objApp.Workbooks.Open("C:\Mis documentos\Prueba.xls")
With objLibro
.WorkSheets(1).Range("A1").Value = "HOLA"
.SaveCopyAs "C:\Mis documentos\Mi copia.xls"
.Close
End With
objApp.Quit
Set objLibro = Nothing
Set objApp = Nothing
</script>
</BODY>
</HTML>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas