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

leer excel desde asp.

Estas en el tema de leer excel desde asp. en el foro de ASP Clásico en Foros del Web. hola estoy tratando de leer un excel desde asp con este ejemplo Código HTML: <% '************** 'Funcion lectora '************** function lectura(RS) respuesta = " <TABLE> ...
  #1 (permalink)  
Antiguo 16/05/2009, 19:07
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
leer excel desde asp.

hola estoy tratando de leer un excel desde asp con este ejemplo



Código HTML:
<% 
'**************
'Funcion lectora
'**************
function lectura(RS)
respuesta = "<TABLE><TR><td>&nbsp;</td>"
For X = 0 To RS.Fields.Count - 1
respuesta = respuesta & "<TD>" & RS.Fields.Item(X).Name & "</TD>"
Next
respuesta = respuesta & "</TR>"
RS.MoveFirst
While Not RS.EOF
respuesta = respuesta & "<TR><td>"&rs.AbsolutePosition&"</td>"
For X = 0 To RS.Fields.Count - 1
respuesta = respuesta & "<TD>" & RS.Fields.Item(X).Value
Next
RS.MoveNext
respuesta = respuesta & "</TR>"
Wend
respuesta = respuesta & "</TABLE>"
lectura=respuesta
end function
'*****************
'termina funcion lectora
'*****************
'procedimiento estandar
strcxn = "Provider=Microsoft.ACE.OLEDB.12.0;"&_
"Data Source ="&server.MapPath("excel_productos.xls")&";Extended Properties=Excel 12.0 Xml;"
strclta = "select * from [excel_productos$]"
response.Write strcxn & "<br />"
response.Flush()
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strcxn
Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS
.ActiveConnection = objConn
.CursorType = 3 'Static cursor.
.LockType = 3 'Pessimistic Lock.
.Source = strclta
.Open
end With
%><br><%
Response.Write("Original Data")
response.Write lectura(objrs)
objRS.Close
Set objRS = Nothing
%> 
pero me sale este error




Provider=Microsoft.ACE.OLEDB.12.0;Data Source =D:\intranets\carpetas\excel_productos.xls;Extende d Properties=Excel 12.0 Xml;


ADODB.Connection
error '800a0e7a'
No se encontró el proveedor especificado. Es posible que no esté instalado correctamente. /cygnus_oked/compras/importar_excel.asp, line 41




que podra ser alguien tiene alguna solucion? este codigo lo proporciono shiryu_libra
gracias por la colaboracion.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 16/05/2009, 22:29
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: leer excel desde asp.

Lexus

te paso el archivo completo de lectura de Excel
Código ASP:
Ver original
  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
  2. <%
  3. function alea(max)
  4.     dim rndmax
  5.     dim rndnumber
  6.    
  7.     rndmax = cdbl(max)
  8.     randomize timer
  9.    
  10.     rndnumber = int(rnd * rndmax)
  11.  
  12. alea = rndnumber
  13. end function
  14.  
  15. function lectura(RS)
  16.     respuesta = "<TABLE><TR><td>&nbsp;</td>"
  17.     For X = 0 To RS.Fields.Count - 1
  18.         respuesta = respuesta & "<TD>" & RS.Fields.Item(X).Name & "</TD>"
  19.     Next
  20.    
  21.     respuesta = respuesta & "</TR>"
  22.     RS.MoveFirst
  23.  
  24.     While Not RS.EOF
  25.         respuesta = respuesta & "<TR><td>"&rs.AbsolutePosition&"</td>"
  26.         For X = 0 To RS.Fields.Count - 1
  27.             respuesta = respuesta & "<TD>" & RS.Fields.Item(X).Value
  28.         Next
  29.         RS.MoveNext
  30.         respuesta = respuesta & "</TR>"
  31.     Wend
  32.     respuesta = respuesta & "</TABLE>"
  33.    
  34. lectura=respuesta
  35. end function
  36.  
  37. function insertar(sql,conn)
  38.     with conn
  39.         .execute(sql)
  40.     end with
  41.     if Err=0 then
  42.         insertar="Perfecto"
  43.     else
  44.         insertar="Mal, muy mal"
  45.     end if
  46. end function
  47.  
  48. function borrar(sql,conn)
  49.     with conn
  50.         .execute(sql)
  51.     end with
  52.     if Err=0 then
  53.         borrar="Perfecto<br />"
  54.     else
  55.         borrar="Mal, muy mal<br />"
  56.     end if
  57. end function
  58.  
  59. %>
  60. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  61. <html xmlns="http://www.w3.org/1999/xhtml">
  62. <head>
  63. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  64. <title>Documento sin t&iacute;tulo</title>
  65. </head>
  66.  
  67. <body>
  68. <!-- Begin ASP Source Code --><%
  69.  
  70. 'definiciones de uso
  71.  
  72. strcxn    =    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="&server.MapPath("ADOExcel.xls")&";Extended Properties=Excel 12.0 Xml;"
  73. strclta =     "select * from [Hoja1$] order by id_usuario"
  74. strins     =    "insert into "&_
  75.                 "[hoja1$](Nombre,Direccion,ID_Usuario,configuracion,elementos,dias)"&_
  76.             "values"&_
  77.                 "('Juliano','cajellon',"&alea(9999)&",'configuracion',"&alea(9999999)&","&alea(10)&");"
  78. strdel     =    "Delete from [hoja1$] where id_usuario = "&alea(10)&";"
  79.  
  80. response.Write strcxn & "<br />"
  81. response.Write strins & "<br />"
  82. response.Flush()
  83.  
  84. Set objConn = Server.CreateObject("ADODB.Connection")
  85. objConn.Open strcxn
  86.  
  87. Set objRS = Server.CreateObject("ADODB.Recordset")
  88. With objRS
  89.     .ActiveConnection = objConn
  90.     .CursorType = 3                    'Static cursor.
  91.     .LockType = 3                      'Pessimistic Lock.
  92.     .Source = strclta
  93.     .Open
  94. end With
  95.  
  96. %><br><%
  97.  
  98. Response.Write("Original Data")
  99. response.Write lectura(objrs)
  100. objRS.Close
  101. Set objRS = Nothing
  102.  
  103. response.Write insertar(strins,objConn)
  104. response.Write borrar(strdel,objConn)
  105.  
  106. objConn.Close
  107. Set objConn = Nothing%>
  108. <!-- End ASP Source Code -->
  109. </body>
  110. </html>
:Nota: recuerda que esta utilizando el Office 2007

si quieres volver a intentar verificando las funciones originales con tus cambios
y vuelve a postear los errores que te salgan....
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #3 (permalink)  
Antiguo 17/05/2009, 09:28
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

hola gracias por el codigo..
le hice estos cambios


en mi maquina me sale que no encuentra el proveedor pero si lo subo a mi hosting me sale un error diferente, yo en mi maquina uso office 2003..


Provider=Microsoft.ACE.OLEDB.12.0;Data Source=d:\hosting\carpeta\productos\excel_producto s.xls;Extended Properties=Excel 12.0 Xml;


Microsoft Office Access Database Engine
error '80004005'
External table is not in the expected format. /compras/importar_excel.asp, line 67



Código:
 
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
function alea(max)
dim rndmax
dim rndnumber
 
rndmax = cdbl(max)
randomize timer
 
rndnumber = int(rnd * rndmax)
 
alea = rndnumber
end function
 
function lectura(RS)
respuesta = "<TABLE><TR><td>&nbsp;</td>"
For X = 0 To RS.Fields.Count - 1
respuesta = respuesta & "<TD>" & RS.Fields.Item(X).Name & "</TD>"
Next
 
respuesta = respuesta & "</TR>"
RS.MoveFirst
 
While Not RS.EOF
respuesta = respuesta & "<TR><td>"&rs.AbsolutePosition&"</td>"
For X = 0 To RS.Fields.Count - 1
respuesta = respuesta & "<TD>" & RS.Fields.Item(X).Value
Next
RS.MoveNext
respuesta = respuesta & "</TR>"
Wend
respuesta = respuesta & "</TABLE>"
 
lectura=respuesta
end function
 
 
 
 
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>
 
<body>
<!-- Begin ASP Source Code -->
<%
 
'definiciones de uso
 
strcxn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="&server.MapPath("excel_productos.xls")&";Extended Properties=Excel 12.0 Xml;"
strclta = "select * from [excel_productos$] "
'strins = "insert into "&_
' "[excel_productos$](id_unidad,id_producto,precio_pesos,precio_dolares)"&_
' "values"&_
' "('Juliano','cajellon',"&alea(9999)&",'configuracion',"&alea(9999999)&","&alea(10)&");"
' strdel = "Delete from [excel_productos$] where id_producto = "&alea(10)&";"
 
response.Write strcxn & "<br />"
' response.Write strins & "<br />"
response.Flush()
 
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strcxn
 
Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS
.ActiveConnection = objConn
.CursorType = 3 'Static cursor.
.LockType = 3 'Pessimistic Lock.
.Source = strclta
.Open
end With
 
%><br><%
 
Response.Write("Original Data")
response.Write lectura(objrs)
objRS.Close
Set objRS = Nothing
 
'response.Write insertar(strins,objConn)
'response.Write borrar(strdel,objConn)
 
objConn.Close
Set objConn = Nothing%>
<!-- End ASP Source Code -->
</body>
</html>
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com

Última edición por lexus; 17/05/2009 a las 09:37
  #4 (permalink)  
Antiguo 17/05/2009, 11:20
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: leer excel desde asp.

Lexus

si en tu equipo usas el Office2003, tienes que cambia la conexion del proveedor
Cita:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;
entonces cambiarias esta parte
Cita:
strcxn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="&server.MapPath("excel_productos.xls")&";E xtended Properties=Excel 12.0 Xml;"
probablemente en tu hosting, tambien tenga el office 2003....
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #5 (permalink)  
Antiguo 17/05/2009, 11:25
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

ok quedo asi:


Código PHP:
<&#37;@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
function 
alea(max)
    
dim rndmax
     dim rndnumber
 
     rndmax 
cdbl(max)
     
randomize timer
 
    rndnumber 
int(rnd rndmax)
 
 
alea rndnumber
 end 
function
 
 function 
lectura(RS)
     
respuesta "<TABLE><TR><td>&nbsp;</td>"
     
For 0 To RS.Fields.Count 1
         respuesta 
respuesta "<TD>" RS.Fields.Item(X).Name "</TD>"
     
Next
 
     respuesta 
respuesta "</TR>"
     
RS.MoveFirst
 
     
While Not RS.EOF
         respuesta 
respuesta "<TR><td>"&rs.AbsolutePosition&"</td>"
         
For 0 To RS.Fields.Count 1
             respuesta 
respuesta "<TD>" RS.Fields.Item(X).Value
         Next
         RS
.MoveNext
         respuesta 
respuesta "</TR>"
     
Wend
     respuesta 
respuesta "</TABLE>"
 
lectura=respuesta
 end 
function
 
 
 
 %>
 <!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <
html xmlns="http://www.w3.org/1999/xhtml">
 <
head>
 <
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <
title>Documento sin t&iacute;tulo</title>
 </
head>
 
 <
body>
 <%
 
 
'definiciones de uso
 
 strcxn    =    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.MapPath("excel_productos.xls")&";User Id=admin;Password=;"
 
 strclta =     "select * from [excel_productos$] "
 
 response.Write strcxn & "<br />"
 response.Flush()
 
 Set objConn = Server.CreateObject("ADODB.Connection")
 objConn.Open strcxn
 
 Set objRS = Server.CreateObject("ADODB.Recordset")
 With objRS
     .ActiveConnection = objConn
     .CursorType = 3                    '
Static cursor.
     .
LockType 3                      Pessimistic Lock.
     .
Source strclta
     
.Open
 end With
 
 
%><br><%
 
 
Response.Write("Original Data")
 
response.Write lectura(objrs)
 
objRS.Close
 Set objRS 
Nothing
 
 objConn
.Close
 Set objConn 
Nothing
 
%>
 </
body>
 </
html
y me sale ahora este error:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\intranets\carpeta\productos\excel_produc tos.xls;User Id=admin;Password=;


Microsoft JET Database Engineerror '80004005'
No se reconoce el formato de base de datos 'D:\intranets\carpeta\productos\excel_productos.xl s'. /cygnus_oked/compras/importar_excel.asp, line 68


otra cosa que depronto influye o no se..
pero el excel que estoy tratando de abrir con asp.. es generado tambien por asp. en otra parte.
es decir lo genero con un asp y se guarda con el nombre excel_productos.xls y la hoja de datos qeuda con el nombre excel_productos
este archivo cambia constantemente cada que es generado..
y luego lo trato de abrir con asp para ver como quedo y ahi es donde esta sacandome el error mencionado anterioremente.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com

Última edición por lexus; 17/05/2009 a las 12:12
  #6 (permalink)  
Antiguo 19/05/2009, 07:28
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

Hola todos

alguien le ha funcionado este ejemplo para que me de una ayudita? o tiene alguno diferente?
gracias
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #7 (permalink)  
Antiguo 20/05/2009, 11:31
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

ya me funciono..
aqui dejo el codigo con los cambios ke le realice..

sirve para leer un archivo excel desde asp sin definir rangos


Código:
<%
 
 function lectura(RS)
     respuesta = "<TABLE><TR><td>&nbsp;</td>"
     For X = 0 To RS.Fields.Count - 1
         respuesta = respuesta & "<TD>" & RS.Fields.Item(X).Name & "</TD>"
     Next
     
     respuesta = respuesta & "</TR>"
     RS.MoveFirst
 
     While Not RS.EOF
         respuesta = respuesta & "<TR><td>"&rs.AbsolutePosition&"</td>"
         For X = 0 To RS.Fields.Count - 1
             respuesta = respuesta & "<TD>" & RS.Fields.Item(X).Value
         Next
         RS.MoveNext
         respuesta = respuesta & "</TR>"
     Wend
     respuesta = respuesta & "</TABLE>"
     
lectura=respuesta
 end function
  
  
 strcxn    =    "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=""DBQ=" & server.MapPath("excel_productos.xls") & ";Driver={Microsoft Excel Driver (*.xls)};DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=1;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"";User Id=admin;"
 
 
 strclta =     "select * from [excel_productos$] "
 
 response.Flush()
  
 Set objConn = Server.CreateObject("ADODB.Connection")
 objConn.Open strcxn
  
 Set objRS = Server.CreateObject("ADODB.Recordset")
 With objRS
     .ActiveConnection = objConn
     .CursorType = 3                    'Static cursor.
     .LockType = 3                      'Pessimistic Lock.
     .Source = strclta
     .Open
 end With
  
 
 response.Write lectura(objrs)
 objRS.Close
 Set objRS = Nothing
  
 objConn.Close
 Set objConn = Nothing
 %>
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #8 (permalink)  
Antiguo 20/05/2009, 11:38
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Respuesta: leer excel desde asp.

interesante conexion a Excel... yo me andaba quebrando la cabeza, por que con vista hacia lo mismo que tu....

perfecto Lexus
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #9 (permalink)  
Antiguo 20/05/2009, 13:00
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

si me puse a buscar en google paginas en ingles dado que en espanol no encontre casi sin definir rangos y me salio esa conexion qeu soluciono todos los problemas..

de todos modos muchisimas gracias por tu colaboracion me sirvio muchisimo.
gacias...
esperemos ke esto tambein le sirva a otras personas porqeu definir rangos limita mucho las posibilidades.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #10 (permalink)  
Antiguo 21/05/2009, 07:32
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

hay alguna forma de volver todos mis celdas tipo texto?
es que hay veces me lee y otras no.. al parecer cuando los tipos de datos en algunos casos son texto y en otros numericos. esto me esta causando problemas.. o cuando son vacios tambien me causa problemas y no me deja leer el excel..
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #11 (permalink)  
Antiguo 22/05/2009, 08:36
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

hay veces me funciona y hay veces me sale este error..


Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Controlador ODBC Excel]Error general No se puede abrir la clave 'Temporary (volatile) Jet DSN for process 0xfc0 Thread 0x760 DBC 0x1420064 Excel' del Registro.
/cygnus_oked/subir_proceso.asp, línea 164


la linea 164 es esta
objConn.Open strcxn

el codigo es el ke tengo arriba no lo he modificado.
ke podra ser?
formatos de celda?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #12 (permalink)  
Antiguo 22/05/2009, 09:46
Avatar de Esfinge02  
Fecha de Ingreso: septiembre-2008
Ubicación: Cd. Victoria Tam
Mensajes: 162
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: leer excel desde asp.

buenas, este código funciona para leer cualquier tipo de archivos o en especifico excel, pregunto se puede aplicar para leer cual quier tipo de archivos????????????????
__________________
La ignorancia es una bendición o un privilegio, yo lo siento programadores
  #13 (permalink)  
Antiguo 22/05/2009, 09:53
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

excel por la conexion de datos que tiene espceificamente
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #14 (permalink)  
Antiguo 22/05/2009, 10:36
Avatar de Esfinge02  
Fecha de Ingreso: septiembre-2008
Ubicación: Cd. Victoria Tam
Mensajes: 162
Antigüedad: 16 años, 6 meses
Puntos: 2
Pregunta Respuesta: leer excel desde asp.

pero esta conexión se puede cambiar cierto???
__________________
La ignorancia es una bendición o un privilegio, yo lo siento programadores
  #15 (permalink)  
Antiguo 22/05/2009, 11:36
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 2 meses
Puntos: 146
Respuesta: leer excel desde asp.

Cita:
Iniciado por lexus Ver Mensaje
hay veces me funciona y hay veces me sale este error..


Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Controlador ODBC Excel]Error general No se puede abrir la clave 'Temporary (volatile) Jet DSN for process 0xfc0 Thread 0x760 DBC 0x1420064 Excel' del Registro.
/cygnus_oked/subir_proceso.asp, línea 164


la linea 164 es esta
objConn.Open strcxn

el codigo es el ke tengo arriba no lo he modificado.
ke podra ser?
formatos de celda?

Hola Lexus

No he tenido chance de estudiar tu código, pero por lo que medio entendí ocupas abrir un archivo de Excel sin rangos y que no de problemas, ok, el fragmento de código siguiente es algo que siempre uso y jamás he tenido problemas salvo que tenga abierto el Excel por descuido al momento de ejecutarlo , solo lo copie y pegué por lo que deberás editarle las partes que no te apliquen.

Saludos

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.        Campos = "|"
  23.        For Each f in oRs.Fields
  24.           Campos = Campos & UCase(f.Name) & "|"
  25.        Next
  #16 (permalink)  
Antiguo 22/05/2009, 13:07
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

es ke no puedo definir rangos porque el archivo varia constantemente y como hoy pueden ser 100 productos manana pueden ser 20mil y asi entonces nunca sabria la dimension exacta de los rangos del archivo..
otra cosa es que el archivo de excel es previamente generado por una pagina asp asi que tampoco podria entrar al excel y darle definir>nombre

por eso me toco buscaer una solocion sin definir rangos.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #17 (permalink)  
Antiguo 22/05/2009, 13:18
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

lo probe asi y me sale el siguiente error


Tipo de error:
Microsoft JET Database Engine (0x80004005)
La tabla externa no tiene el formato esperado.
/productos/importar_excel_proceso.asp, línea 16



Código PHP:
 Dim sSourceXLS conStr 
sSourceXLS 
server.MapPath("documentos/excel_productos.xls"
        
    
Dim oConn
    Set oConn 
Server.CreateObject("ADODB.Connection")
    
conStr "Provider=Microsoft.Jet.OLEDB.4.0;" _
               
"Data Source=" sSourceXLS ";" _
               
"Extended Properties=""Excel 8.0;HDR=YES;"""
        
oConn.Open conStr
 
    CntErrors 
0       
    Set oRS 
Server.CreateObject("ADODB.Recordset")
'       On Error Resume Next
        '
3704
 
    oRS
.Open "Select * from [A1:Y1000] "oConn13
 
        
IF Err.number = -2147217865 Then
             AgregaError
("No existe la hoja [excel_productos] en el archivo")
        ElseIf 
oRs.EOF Then
             AgregaError
("No hay registros en el archivo")
        Else
       
Campos "|"
       
For Each f in oRs.Fields
          Campos 
Campos UCase(f.Name) & "|"
       
Next
end 
if 
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #18 (permalink)  
Antiguo 22/05/2009, 13:23
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

aunke ya probe este y le hice bastantes cambios y me funcionaba hasta ayer y ahora me funciona de vez en cuando.. para unos casos y para otros no. entonces nose si sean los formatos de las celdas o no se ke sera..

aun no logro descifrarlo

<%

function lectura(RS)
respuesta = "<TABLE><TR><td>&nbsp;</td>"
For X = 0 To RS.Fields.Count - 1
respuesta = respuesta & "<TD>" & RS.Fields.Item(X).Name & "</TD>"
Next

respuesta = respuesta & "</TR>"
RS.MoveFirst

While Not RS.EOF
respuesta = respuesta & "<TR><td>"&rs.AbsolutePosition&"</td>"
For X = 0 To RS.Fields.Count - 1
respuesta = respuesta & "<TD>" & RS.Fields.Item(X).Value
Next
RS.MoveNext
respuesta = respuesta & "</TR>"
Wend
respuesta = respuesta & "</TABLE>"

lectura=respuesta
end function


strcxn = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=""DBQ=" & server.MapPath("excel_productos.xls") & ";Driver={Microsoft Excel Driver (*.xls)};DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5 ;ReadOnly=1;SafeTransactions=0;Threads=3;UID=admin ;UserCommitSync=Yes;"";User Id=admin;"


strclta = "select * from [excel_productos$] "

response.Flush()

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open strcxn

Set objRS = Server.CreateObject("ADODB.Recordset")
With objRS
.ActiveConnection = objConn
.CursorType = 3 'Static cursor.
.LockType = 3 'Pessimistic Lock.
.Source = strclta
.Open
end With


response.Write lectura(objrs)
objRS.Close
Set objRS = Nothing

objConn.Close
Set objConn = Nothing
%>
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #19 (permalink)  
Antiguo 25/05/2009, 10:36
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

hola alguien sabe como solucionar el problema que tengo a la hora de leeer un excel desde asp?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #20 (permalink)  
Antiguo 25/05/2009, 11:54
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

hola.
hice las pruebas con el mismo codig y me funciono cuadno copie el excel exportado a un excel nuevo.
es decir copie y pege el contenido en otro archivo de excel y ahi si me lo leyo sin problemas. no era el tipo de celdas sino parece ser problema de la version de excel o de algo relacionado con la forma en ke se genera el excel ke estoy tratando de leer..
el ke estoy tratando de leer es generado tambien por un asp de esta forma..


Server.ScriptTimeOut = 90000
Response.Buffer = TRUE
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment; filename=excel_productos.xls"

hay alguna otra forma de hacerlo o mas parametros?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #21 (permalink)  
Antiguo 26/05/2009, 14:32
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 3 meses
Puntos: 4
Respuesta: leer excel desde asp.

alguien sabe ke pueda ser el problema ke tengo?
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
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 05:32.