Foros del Web » Programando para Internet » ASPX (.net) »

Ayuda con archivo de excel 2007

Estas en el tema de Ayuda con archivo de excel 2007 en el foro de ASPX (.net) en Foros del Web. hola, me pueden ayudar cone ste problema. Antes escribi un tema en donde les decia que no podia abrir un archivo de excel en mi ...
  #1 (permalink)  
Antiguo 16/01/2010, 11:22
Avatar de Romi28x  
Fecha de Ingreso: octubre-2007
Mensajes: 185
Antigüedad: 16 años, 6 meses
Puntos: 0
Ayuda con archivo de excel 2007

hola, me pueden ayudar cone ste problema.

Antes escribi un tema en donde les decia que no podia abrir un archivo de excel en mi pagina (asp.net 2005), dicho archivo lo cargo en un dataset y lo muestro en un gridview, este me funciona muy bien en mi maquina, en donde estoy programando, luego que lo paso todo al servidor e ingreso a la aplicacion desde cualquier maquina e intento hacer lo mismo el dataset no se llena con la informacion del archivo de excel, descubri que debia instalar en el servidor los componectes de conectividad ya que en el servidor no hay office instalado, ok hice eso y me mando otro tipos de errores, me decia que no podia crear el archivo, investigando desubri que necesitaba darle permisos al usuario aspnet, ya hice esto pero ahora me manda este error.

System.Data.OleDb.OleDbException: No error message available, result code: E_FAIL(0x80004005).

haciendo todo tipo de pruebas, tome el archivo de excel y lo copie a la carpeta root del servidor y al hacer esto y hago la prueba habriendo la pagina desde iis en els ervidor entonces si me cargar el archivo en el dataset.

pero si hago esto mismo desde la maquina de un usuario comun y busco el archivo en su maquina y lo quiero cargar en el dataset entonces me manda el error que les decribi mas arriba

este es el codigo que uso para cargar el archivo.

oConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & path & "';Extended Properties='Excel 12.0'" ';HDR=NO" ';IMEX=1"
oConn.Open()
oCmd.CommandText = "SELECT * FROM [Hoja1$]"
oCmd.Connection = oConn
oDa.SelectCommand = oCmd
oDa.Fill(oDs)

dgExcel.DataSource = oDs
dgExcel.DataBind()


me pueden ayudar.

Última edición por Romi28x; 16/01/2010 a las 11:43
  #2 (permalink)  
Antiguo 16/01/2010, 23:39
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Ayuda con archivo de excel 2007

No entendí muy bien :$ el usuario selecciona el archivo de excel, por ejemplo: "D:\mihojadeexcel.xls",
luego usando esa ruta intentas pasar los datos de la hoja de cálculo a la grilla??
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 18/01/2010, 09:13
Avatar de Romi28x  
Fecha de Ingreso: octubre-2007
Mensajes: 185
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Ayuda con archivo de excel 2007

Correcto, el usuario selecciona el archivo de excel desde la aplicacion asp.net, guarda la ruta del archivo en una variable, luego con este procedimiento leo el archivo...

oConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & path & "';Extended Properties='Excel 12.0'" ';HDR=NO" ';IMEX=1"
oConn.Open()
oCmd.CommandText = "SELECT * FROM [Hoja1$]"
oCmd.Connection = oConn
oDa.SelectCommand = oCmd
oDa.Fill(oDs)

dgExcel.DataSource = oDs
dgExcel.DataBind()


la informacion del archivo la muestro en el gridview,e sto funciona bien en mi maquian, en donde estoy programando, pero cuando ya paso todoe ste codigo el servidor y intento hacer lo mismo desde cualquier computador de X usuario me manda el error.
  #4 (permalink)  
Antiguo 18/01/2010, 09:26
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Ayuda con archivo de excel 2007

Pero si yo selecciono un archivo con la ruta "D:\mihojadeexcel.xls" tu código quedaría así:
Código vb.net:
Ver original
  1. oConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="D:\mihojadeexcel.xls";Extended Properties='Excel 12.0'" ';HDR=NO" ';IMEX=1"
Entonces buscará en el servidor en la unidad D:\ la hoja de excel.
Puede ser esto causa del error, en todo caso antes de cargar el archivo al datagridview deberías subirlo a una ruta del servidor.

Espero te ayude en algo
__________________
Eduardo Peredo
Wigoin
  #5 (permalink)  
Antiguo 18/01/2010, 12:12
Avatar de Romi28x  
Fecha de Ingreso: octubre-2007
Mensajes: 185
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Ayuda con archivo de excel 2007

si efectivamente, la ruta del archivo quedaria asi a como tu lo indicas, pero es que el asunto es que el archivo estara en las maquinas de los usuarios, el usuario lo puede tener en la carpeta que desee, yo desde la aplicacion accedo a esa carpeta y capruto la ruta.
  #6 (permalink)  
Antiguo 18/01/2010, 14:36
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Ayuda con archivo de excel 2007

Tu capturas la ruta, pero el servidor lo buscará en su disco duro, más no en el usuario. Sólo podrás acceder a los discos del usuario en el caso de que estén en una LAN con el servidor y tengan directorios compartidos, y al referencia al archivo en tu cadena de conexión deberías hacerlo de esta forma: \\nombre_pc\\recurso_compartido\archivo.xlsx.

No conozco totalmente el escenario en el que te encuentras, pero creo que deberías tener en el servidor una carpeta "Excels" y ahí guardar los archivos que el usuario elija y luego recién hacer referencia a esa ruta.

Código:
oConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="D:\Excels\" + nombre_archivo + ";Extended Properties='Excel 12.0'" ';HDR=NO" ';IMEX=1"
Saludos.
__________________
Eduardo Peredo
Wigoin
  #7 (permalink)  
Antiguo 19/01/2010, 16:19
Avatar de Romi28x  
Fecha de Ingreso: octubre-2007
Mensajes: 185
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Ayuda con archivo de excel 2007

ok muchas gracias por tu ayuda, tendre enc eunta tus comentarios.

Etiquetas: excel, aspx
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:35.