Excel en WEB

Necesito insertar un documento excel en una página web. He encontrado dos formas. La primera es construyendo una página asp incluyendo al principio de la misma lo siguiente: <%Response. ContentType = "application/vnd.ms-excel"%>, pero esto no me permite manipular los datos visualizados como un objeto. La segunda es a través de un objeto OWC que me funciona como quiero, pero solo es válido para office 2000. Necesito algo más general que me permita manipular ficheros excel sin importar la versión. ¿Conocéis alguna otra forma de hacer lo que necesito?. También me serviría un Grid en el que pudiera mostrar datos de excel y poder manipularlos (mostrarlos, editarlos y almacenarlos).

1 Respuesta

Respuesta
1
No sé exactamente qué es lo que quieres obtener, pero lo que pides lo puedes hacer de forma mucho más sencilla con una referencia directa de las de siempre:
<a href="fichero.xls">excel</a>
Efectivamente teum, la respuesta que me has dado es buena, precisa y sencilla. Sin embargo el problema que tengo es un poco más complejo, ya que el fichero excel se encuentra en un servidor (IIS) y lo que deseo es mostrarlo en la página web de una aplicación cliente en un momento dado, de manera que el cliente pueda modificar los datos de excel y reenviarlo al servidor que validará los datos del fichero para su posterior uso. Pero como el tamaño del fichero puede variar he pensado en optimizar la transferencia del fichero desde/a el servidor, haciendo solo 2, una desde el servidor al cliente y otra del cliente al servidor cuando ya estén validados los datos. Para hacer esto tendría que realizar la rutina de validación de los datos en el cliente, lo cual es bastante viable siempre y cuando pueda hacer referencia a las celdas del fichero excel y es allí a donde radica mi problema ya que de la forma como has mencionado anteriormente no tengo referencia a ningún objeto. Por otra parte, he pensado que si puedo guardar el fichero que modifica el cliente en formato xls y posteriormente instanciarlo a través de un javascript podría hacer la validación que necesito. Bien la cuestión es que ahora he hecho una página con frameset, donde el frame superior contiene el excel y el frame inferior un botón que inicia la validación. ¿Cómo hago para pasar el enfoque desde el frame inferior al frame superior para guardar el documento excel en formato xls, sin que aparezca un dialogBox?.
Teum, disculpa que te haya comentado todo lo anterior pero me pareció que así tendrías una idea clara de cual es mi problema.
Gracias de nuevo por tu tiempo y atención
Ya veo que lo que buscas es bastante más complejo...
¿No es posible poner el botón de validación en el frame superior?
Otra cosa, quizás lo más fácil (dependiendo del tipo de validación que busques) sea que el fichero excel original incluya alguna macro que haga la validación automáticamente...
De todas formas, hace bastante tiempo que dejé el asp de lado, y es posible que haya algún método mejor...
Normalmente lo que buscas se suele hacer con una aplicación externa que sea llamada por el botón...
Ya he intentado lo del botón en el mismo frame del excel, de manera que al pulsar se ejecutara una función dentro de un javascript colocado en la misma página ASP, pero solo se visualizan los botones de tipo Submit, cualquier otro tipo de botón no es visualizado. Sin embargo al implementarlo con el botón de submit tampoco funciona, es decir, no va a la función del script, a pesar de que he colocado el evento OnClick="validaDatos()", donde validaDatos() es el nombre de la función del javascript. No he realizado muchas cosas en HTML y solo he utilizado los botones submit para el envío de información de una página a otra, ¿Se puede utilizar el botón de submit para ejecutar una función de script?, porque pudiera ser que no lo esté implementado de la manera correcta.
Por otra parte, la solución de crear un módulo interno en el fichero excel (a pesar de ser muy buena), no es viable ya que se desea que la persona encargada del mantenimiento de la aplicación haga cambios mínimos y sobre todo orientados hacia HTML, pero en ningún caso tocar la estructura interna de la aplicación y eso por supuesto incluye cualquier código que estuviese dentro del excel.
Bueno, veré si puedo hacerlo con una aplicación externa.
De nuevo muchas gracias por tu colaboración, teum
No entiendo por qué no puedes poner un botón normal y sí un submit.
Has probado a poner:
<script language="vbscript">
sub validar_onclick()
Form1. ValidaDatos()
Form1. Submit()
end sub
</script>
<input value="Validar" type="button" name="validar">
He probado lo que me has dicho pero no me ha funcionado. Sigue sin aparecer el botón. La solución que de momento me parece mas viable es la de pasar el enfoque al frame. Para hacer eso he hecho la siguiente prueba con dos ficheros html. El primero es frames.html y contiene lo siguiente: <FORM Name="frmPrincipal">
<FRAMESET Rows="75%,25%">
<FRAME Id="idExcel" Name="fraExcel" Src="prueba.xls">
<FRAME Id="idValida" Name="fraValida" Src="ResultadosValidacion.htm">
</FRAMESET>
</FORM>, donde prueba.xls es un fichero de excel con datos de prueba y el segundo fichero es ResultadosValidacion.html que contiene: <HTML>
<HEAD>
<SCRIPT Language="JavaScript">
function guardarComo()
{
parent.document.frames.fraExcel.focus;
document.execCommand("SaveAs");
}
</SCRIPT>
<SCRIPT Language="VBScript">
function guardaFichero()
Dim fichero
Set fichero = CreateObject("Excel.Application")
fichero.workbooks.open("C:\NNERecomendador\web\pruebas\prueba.xls")
fichero.application.Visible = True
fichero.application.UserControl = True
end function
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="frmResultadosValida">
<INPUT Id="txtArea" Name="txtArea" Style="HEIGHT: 66px; WIDTH: 379px"><BR>
<INPUT Id="btnValida" Name="btnValida" Type="button" Value="Validar" OnClick="validar()"><INPUT Id="btnGuardar" Name="btnGuardar" Type="button" Value="Guardar" OnClick="guardarComo()"> 
</FORM>
</BODY>
</HTML>
Ya entiendo, al poner el fichero excel como source de un frame es imposible meter nada más en ese frame, yo creía que lo estabas metiendo como un objeto dentro de un formulario, y creo que deberías seguir investigando por ahí, cómo introducir un objeto excel dentro de un formulario, en cuyo caso, ya si podrías tener otros elementos como botones o textareas, pero ahora mismo no se me ocurre como hacerlo...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas