Foros del Web » Programando para Internet » ASP Clásico »

Excel-ASP: ¿cómo hacer esto?

Estas en el tema de Excel-ASP: ¿cómo hacer esto? en el foro de ASP Clásico en Foros del Web. Saludos a todos: El título no es demasiado descriptivo, pero es que el problema o el trabajo a resolver es un poco complejo... Lo mejor ...
  #1 (permalink)  
Antiguo 19/06/2010, 18:08
 
Fecha de Ingreso: abril-2006
Mensajes: 69
Antigüedad: 18 años
Puntos: 0
Excel-ASP: ¿cómo hacer esto?

Saludos a todos:

El título no es demasiado descriptivo, pero es que el problema o el trabajo a resolver es un poco complejo... Lo mejor es intentar ofrecer la máxima información posible, a ver si logro hacerme entender y podéis echar una mano con vuestros sabios consejos... XD

- Un cliente mío me pidió que le realizara un catálogo de productos en su web. Los productos los tenía en un Excel, me lo pasó, y los inserté en la base de datos, añadiendo algunos campos, como la foto y el precio, por ejemplo.

- Desde la web los usuarios no registrados sólo pueden ver la lista de productos y la ficha de detalle de cada uno de ellos, pero los usuarios registrados, según una tabla de clientes, pueden además acceder a una página en la que se muestra un listado de todos los productos y unas casillas de texto en las que indican las unidades que quieren adquirir para realizar un pedido de productos.

- Los clientes registrados marcan las unidades que quieren de cada producto, y le dan a enviar... Automáticamente se envía un correo electrónico a la empresa, con el listado de productos que ha solicitado el cliente. No hay pasarela de pago ni nada parecido, sólo un mail automático con una lista de productos y unidades solicitadas con cada uno. La idea era que la empresa recibiera ese mail, y, en su programa de gestión interno introdujeran los productos que ha solicitado su cliente y procesaran el pedido.

- El problema es que ahora mi cliente me dice que ellos tienen una opción en su programa de gestión de pedidos en la cual se pueden importar las hojas Excel que les envían los clientes para meter el pedido automáticamente en su programa. Y no quieren tener que escribir "a mano" los pedidos que reciben por mail de sus clientes: quieren recibir directamente un Excel como el que ellos utilizan, para importarlo directamente en el programa de gestión.

¿Cómo soluciono esto? Supongo que podría hacer que los pedidos de los clientes se insertaran en un Excel, y que éste se enviara automáticamente a la empresa. Pero ellos necesitan recibir un Excel exactamente igual al que ellos manejan, con los mismos productos en las mismas filas... Además, ellos modifican su Excel bastantes veces...

Me imagino que lo más lógico sería programara un código que importara todo el contenido del Excel, lo pasara a la base de datos para que se visualizara en la página, y, cuando los clientes hicieran pedidos en la página, entonces estos se exportaran directamente a un Excel igual que el que habíamos utilizado al principio, que le llegaría por correo electrónico a la empresa.

¿Todo esto es posible? ¿Y, sobre todo, es muy complicado? ¿Qué haríais vosotros? No busco códigos, ya que puedo buscarme la vida por Internet... Sólo consejos, que no os quiero robar demasiado tiempo.

Muchas gracias y un saludo.
  #2 (permalink)  
Antiguo 21/06/2010, 07:25
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Excel-ASP: ¿cómo hacer esto?

No buscas códigos?, esto es nuevo, jeje

Pues no se qué consejo necesites, ya todo lo que debes hacer ya lo sabes. De la misma forma que armabas el email y se los mandabas con la lista de productos seleccionados, ahora vas a generar el excel, y lo puedes hacer por dos medios diferentes: una tabla común y corriente HTML y modificando el encabezado para que sea tratado como un Excel o usando los OWC, ahí tu eliges el que te sirva, supongo que la primera opción sería suficiente para algo como lo que quieres.

Saludos
  #3 (permalink)  
Antiguo 24/06/2010, 12:19
 
Fecha de Ingreso: abril-2006
Mensajes: 69
Antigüedad: 18 años
Puntos: 0
Respuesta: Excel-ASP: ¿cómo hacer esto?

No es que no busque códigos... Si quieres darme todo ya hecho te dejo hacerlo, je, je...

Lo que pasa es que mi problema es bastante complicado, así que no quiero que perdais mucho tiempo con esto, sólo con recibir cierta orientación me vale, para luego buscarme la vida por internet, como hay que hacer.

El tema es que necesito importar de un Excel, mostrarlo exactamente igual (cambiando el formato, claro, pero todo con la misma información), y exportarlo nuevamente a un Excel cada vez que un cliente haga un pedido. Yo creo que lo más facil al final es colgar el Excel, y que cada cliente se lo descargue, lo rellene, y lo envíe por correo... Pero, si no, ¿cómo lo podría hacer? ¿Cuál sería el mejor sistema de importar algo, mostrarlo tal cual, y exportarlo igual igual, con las mismas filas y columnas?

Gracias, de todos modos, por tu ayuda.
  #4 (permalink)  
Antiguo 24/06/2010, 15:58
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Excel-ASP: ¿cómo hacer esto?

Para importarlo es bastante sencillo, ya que lo lees como si una BD fuera:

Código ASP:
Ver original
  1. sSourceXLS = Server.MapPath(".") & "\ClientUploads\" & sNomXLS
  2.        
  3.     Dim oConn
  4.     Set oConn = Server.CreateObject("ADODB.Connection")
  5.     conStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
  6.                "Data Source=" & sSourceXLS & ";" & _
  7.                "Extended Properties=""Excel 8.0;HDR=YES;"""
  8.         oConn.Open conStr
  9.  
  10.     CntErrors = 0      
  11.     Set oRS = Server.CreateObject("ADODB.Recordset")
  12. '       On Error Resume Next
  13.         '3704
  14.  
  15.     oRS.Open "Select * from [A1:Y1000] WHERE LTRIM(RTRIM(Barco))<>''", oConn, 1, 3
  16.  
  17.         IF Err.number = -2147217865 Then
  18.              AgregaError("No existe la hoja [Rollos] en el archivo")
  19.         ElseIf oRs.EOF Then
  20.              AgregaError("No hay registros en el archivo")
  21.         Else
  22.                          While not oRS.EOF
  23.                              generas tu tabla html con el contenido del Excel y los campos del formulario
  24.                          Wend
  25. oRS.Close
  26.           Set oRS = Nothing
  27.           oConn.Close
  28.           Set oConn = Nothing  
  29.                 End If

Y para exportarlo, ..., ahí no se que sería exactamente eso de exportarlo, digo, por que lo que ustedes necesitan no es el excel como tal, supongo, sino lo que modifique ligado a un ID y actualizar algo, ¿o tienen un Excel por cliente?

Bueno, si igual quieres generar en el servidor un Excel con la información que haya cambiado, tienes de dos sopas: Leer de nuevo el Excel que le mostraste y actualizar la columna referente a lo que haya cambiado (recuerda que puedes tratar al Excel como a una tabla) o generar de nuevo el Excel en el servidor (con OWC) de cero con la información que el usuario te mandó, obviamente cuando le muestras el Excel, esto no es más que un formulario que enviaras al servidor con los cambios que el cliente capture.

No se si me expliqué o te dejé peor
  #5 (permalink)  
Antiguo 27/06/2010, 13:22
 
Fecha de Ingreso: abril-2006
Mensajes: 69
Antigüedad: 18 años
Puntos: 0
Respuesta: Excel-ASP: ¿cómo hacer esto?

Muchas gracias por tu respuesta, de nuevo.

No se qué haré al final con este proyecto, ya que el cliente me pide cosas cada vez más complicadas... O no le entiendo yo muy bien, vaya.

Pero el código que me enseñas me resulta muy útil para hacer pruebas. Voy a ver si practico un poco con él e intento hacer algunas cosas que me puedan ser útiles para este proyecto.

Muchas gracias de nuevo.

P.D: Sólo por curiosidad, te explico alguna duda que tenías:

El contenido del Excel original se muestra como una tabla de productos en la web. En una columna de "unidades" el cliente va escribiendo, por cada producto (los productos van en las sucesivas filas del Excel), el número de unidades que desea pedir. Al hacer click en el botón de enviar o comprar, el Excel se actualiza con el número de unidades que ha escrito el cliente, y se envía automáticamente por correo a la empresa.
  #6 (permalink)  
Antiguo 28/06/2010, 07:23
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Respuesta: Excel-ASP: ¿cómo hacer esto?

Eso lo suponía, y no es nada difícil hacerlo, lo que no entiendo es para qué necesitas actualizar un Excel con lo que el cliente capture, a menos que tengas un Excel por cada pedido de cada cliente eso no tiene sentido; lo normal es actualizar una BD's. Y si no tienes BD's, pues ya con el correo conservas el pedido, no podrás manejar existencias ni nada, pero ya tienes algo para surtir lo que el cliente seleccionó.
  #7 (permalink)  
Antiguo 01/07/2010, 03:31
 
Fecha de Ingreso: junio-2008
Mensajes: 17
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Excel-ASP: ¿cómo hacer esto?

Hola:
No sé si me entero muy bien del tema, pero a ver si esta forma pudiera servirte.
Si ya tienes hecha la parte en la que el cliente rellena el formulario, puedes tener el excel en el servidor como plantilla, hacerle una copia e insertar los datos de tu base de datos, como se explica en
http://support.microsoft.com/kb/195951
también tienes un componente gratuito llamado dypso_xls que te permite montar o modificar un excel
http://dypso.free.fr/tech/generer_excel_avec_ado.php
una vez hecho, envías ese fichero por email a tu cliente.
Otra forma que se me ocurre la he comentado ahora en otro post. Si el cliente te pasa el formato de excel que utilizas, lo puedes "guardar como" html desde excel, le cambias la extensión a asp y ahí abres la conexión de la base de datos y modificas los campos que te hagan falta. Después generas el excel con
Cita:
Response.ContentType = "application/vnd.ms-excel"
y el cliente puede abrirlo directamente en excel
No sé si van por ahí los tiros.
Suerte y saludos
  #8 (permalink)  
Antiguo 06/08/2010, 10:13
 
Fecha de Ingreso: febrero-2008
Ubicación: Colombia
Mensajes: 48
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Excel-ASP: ¿cómo hacer esto?

Hola a todos...

Tengo una pregunta acerca de este tema... Espero no hay problema por no abrir un nuevo foro... De lo contrario lo abriré...

A mi me funciona muy bien utilizar: Response.ContentType = "application/vnd.ms-excel"

Pero tengo una duda... Cómo modificar los anchos de las columnas??

Tengo una tabla que en una de sus columnas muestra bastante texto. Y así modifique el ancho de la tabla <td width="500"> En el excel siempre lo veo del mismo ancho y unas filas quedan muyyyyyyyyyy altas... Y esto se ve muy feo...

Saben que debo aplicar a las celdas para que funcione??

Mil gracias,
Janneth
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:54.