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

coom vaciar datos de una tabla a un archivo predefinido en excel

Estas en el tema de coom vaciar datos de una tabla a un archivo predefinido en excel en el foro de ASP Clásico en Foros del Web. miren tengo el sgte caso: tengo un archivo excel en el cual mediante unos datos en la hoja genero graficos. ahora yo queria saber si ...
  #1 (permalink)  
Antiguo 08/07/2008, 12:46
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 16 años, 7 meses
Puntos: 0
coom vaciar datos de una tabla a un archivo predefinido en excel

miren tengo el sgte caso:


tengo un archivo excel en el cual mediante unos datos en la hoja genero graficos.


ahora yo queria saber si es que es posible en asp vaciar los datos de las tablas que muestra mi pagina asp en este archivo excel, para que asi este archivo excel muestre los graficos de la tabla de la pagina asp.


yo quiero hacer un reemplazo de datos en el archivo excel , yo no quiero hacer un reemplazo de archivo excel , pues si hago esto perderia los graficos


por ejemplo si en mi archivo excel llamado ejemplo.xls estan los datos


columna A ----- ColumnaB
dato A -------- dato b

con su respectivo grafico



y en mi tabla en la pagina asp tengo


columna 1 --------columna 2
dato C ---------- Dato D



yo quiero que en mi archivo excel ejemplo.xls

quede

columna A ----- ColumnaB
dato C ------- dato D

con Su respectivo grafico
  #2 (permalink)  
Antiguo 08/07/2008, 14:40
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: coom vaciar datos de una tabla a un archivo predefinido en excel

si entendi bien, lo unico que deseas es tomar el excel y cambiar los valores de determinadas celdas y de esta manera el grafico cambie.... correcto?

pues bien, access y excel se pueden tomar como si fueran bases de datos, entonces podrias realizar una conexion a este archivo de excel, con una cadena de conexion similar a esto:
Cita:
strcxn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="&server.MapPath("TUExcel.xls")&";Extended Properties=Excel 12.0 Xml;"
una ves realizado esto, y este bien definida la direccion al archivo, lo trataremos como una base utilizando el metodo ADO para buscar datos y cambiarlos, por ejemplo:
Código PHP:
'consulta a una hoja
strclta =     "select * from [Hoja1$] order by id_usuario"
'
creamos la variable conexion
Set objConn 
Server.CreateObject("ADODB.Connection")
'abrimos este archivo
objConn.Open strcxn
'
establecemos los atributos del recordset
Set objRS 
Server.CreateObject("ADODB.Recordset")
With objRS
    
.ActiveConnection objConn
    
.CursorType 3                    'Static cursor.
    .LockType = 3                      '
Pessimistic Lock.
    .
Source strclta
    
.Open
end With 
ahora bien, ya una ves establecido lo anterior podremos manipular los datos de excel
leemos
Código PHP:
    response.write "<TABLE><TR><td>&nbsp;</td>"
    
For 0 To RS.Fields.Count 1
        response
.write "<TD>" RS.Fields.Item(X).Name "</TD>"
    
Next
    
    response
.write "</TR>"
    
RS.MoveFirst

    
While Not RS.EOF
        response
.write "<TR><td>"&rs.AbsolutePosition&"</td>"
        
For 0 To RS.Fields.Count 1
            response
.write "<TD>" RS.Fields.Item(X).Value
            response
.write "</td><TD>" RS.Fields.Item(X).type
        Next
        RS
.MoveNext
        response
.write "</TR>"
    
Wend
    response
.write "</TABLE>" 
nota que el primer "FOR" es para establecer los encabezados

y de ahi en adelante podrias utilizar una sentencia UPDATE de SQL, para cambiar/sustituir los campos/celdas que requieras

__________________
"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 08/07/2008, 15:44
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: coom vaciar datos de una tabla a un archivo predefinido en excel

ummmm este post no es este mismo
http://www.forosdelweb.com/f15/probl...-datos-603888/

si es así bueno seria no repetir temas

suerte


maestro Shiryu_Libra:
lo que el quiere es traerse su hoja por completo desde el web con todo y graficos (lee el otro tema)

basados en tu ejemplo el tendría que crear el XLS en su server y luego descargarlo, para poder llevarse las gráficas?????
__________________
JuanRa Pérez
San Salvador, El Salvador
  #4 (permalink)  
Antiguo 08/07/2008, 16:00
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: coom vaciar datos de una tabla a un archivo predefinido en excel

de hecho lo que rezocrew, intento realizar en el post anterior, es pasar la pagina a excel, para enviar la grafica con sus datos, cosa que asi de simple no se puede, ya que tendria que emplear el OWC10 (probablemente el 11 tambien le ayude), para la generacion de la grafica

ahora, antes de estos 2 mensajes tambien respondimos sobre como consultar los datos desde excel, pasandolos a SQL.... no se si recuerdas

y hoy, lo que intenta rezo, es tratar de modificar la hoja de excel, mas bien dicho... lo datos de la plantilla que ya tiene generada la grafica, solo quiere realizar la consulta y asi, automaticamente la grafica cambiaria

por eso anexe nuevamente el codigo que le serviria, pero creo que todavia tiene problemas para entenderlo correctamente, me imagino que lo han de estar apurando para que termine

pero son buenas las observacion, creo que lo mejor seria realizar una combinacion de estos tes temas que ha puesto para que se hilen automaticamente, a lo mejor en ese sentido pudiera encontrar la solucion

__________________
"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 08/07/2008, 16:21
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Respuesta: coom vaciar datos de una tabla a un archivo predefinido en excel

oki que haga dos hojas una para poner sus datos y otra para poner sus graficas

o que haga dos archivos y los vincule, asi se evita estar calculando donde poner los datos sin interferir sus datos

y yo solo decía maestro
__________________
JuanRa Pérez
San Salvador, El Salvador
  #6 (permalink)  
Antiguo 09/07/2008, 14:50
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: coom vaciar datos de una tabla a un archivo predefinido en excel

estudiando mi problema he realizado el sgte codigo

<%@ Language=VBScript %>
<% Response.Expires=0 %>
<% Response.BUFFER = TRUE %>

<%



dim st(100),dtr_datos,my_tds

menu = session("Menu")
my_tds = session("my_tds")
dtr_datos = session("dtr_datos")

ParXls = request("ParXls")
if len(trim(ParXls)) <> 0 then
menu = ParXls
end if

m_x = ubound(dtr_datos,2)
m_z = ubound(dtr_datos,1)

tot_col = session("nro_col")

Response.Write("<table border='1' width='100%' class='label' align='center'>")
Response.Write("<tr>")
Response.Write("<td width='100%' bgcolor='#476d96' colspan='100'>")
Response.Write("<font face='arial' size='4' color='#ffffff'>&nbsp;"& session("sub_tit") &"</font></td>")
Response.Write("</tr>")
Response.Write("<tr align='center'>")

for tr = 1 to tot_col
my_tit = my_tds(tr,0)
Response.Write("<td width='20%' bgcolor='#d0cec2'>")
Response.Write("<font face='arial' size='2'><b>&nbsp;"& my_tit &"</b></font></td>")
next
Response.Write("</tr>")
For tr_I = 0 to m_x
for tr_J = 0 to m_z
st(tr_J + 1) = rtrim(dtr_datos(tr_J,tr_I))
campo = st(tr_J + 1)

if datos="" then
datos = campo
else
datos = datos & ", " & campo
end if

response.Flush()



next

Path=Server.MapPath("Grafico.xls")
Set XLSstrcxn = Server.CreateObject("ADODB.Connection")
XLSstrcxn.Open "DRIVER={Microsoft Excel DRIVER (*.xls)};DBQ=" & Path


Set insercion1 = Server.CreateObject("ADODB.Connection")
response.write(datos)

insertar="INSERT INTO [Hoja1$]("&_
"DIRECCION,"&_
"MONTOS)"&_
"VALUES("&_
datos&_
");"


insercion1.Open XLSstrcxn
insercion1.execute(insertar)

response.write("holaaaa")
response.end
insercion1.close





select case trim(menu)
case "xx"
'st(3) = st(8)
end select

for tr = 1 to tot_col
my_num_var = my_tds(tr,4)
my_align = my_tds(tr,3)
if len(trim(my_num_var)) <> 0 then
if isnumeric(st(tr)) then
st(tr) = formatnumber(st(tr),my_num_var)
end if





end if




Response.Write("<td nowrap align='"& my_align &"' > "& st(tr) &"</td>")
next
Response.Write("</tr>")
next
Response.Write("</table>")

%>


pero me sale un error a la hora de hacer el insert y el error es el sgte :



Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][Controlador ODBC Excel] Error de sintaxis (falta operador) en la expresión de consulta 'D. ADMINISTRACION Y CONTROL'.

'D. ADMINISTRACION Y CONTROL'. es un de los datos que quiero ingresar a mi planilla excel


la variable datos recoje a la perfeccion los registros de mi base de datos pero a la hora de hacer el insert me sale este error y realmente no se que sera, quisiera saber si me pueden ayudar con esto de anteamo muchas gracias
  #7 (permalink)  
Antiguo 09/07/2008, 16:52
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Respuesta: coom vaciar datos de una tabla a un archivo predefinido en excel

tienes que verificar los tipos de datos en la hoja de excel

entra a tu archivo de excel, ve las propiedades de columna, y verifica que estos este con Asginacion "TEXTO", para que no te marque error de datos

__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #8 (permalink)  
Antiguo 10/07/2008, 07:24
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: coom vaciar datos de una tabla a un archivo predefinido en excel

verifiqué los tipos de datos en la hoja excel y estos estan bien , entonces no se que sera :(,

el problema en si me lo esta generando el archivo excel ???
  #9 (permalink)  
Antiguo 10/07/2008, 16:05
 
Fecha de Ingreso: octubre-2007
Ubicación: Santiago ,Chile
Mensajes: 146
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: coom vaciar datos de una tabla a un archivo predefinido en excel

logre solucionar en parte mi problema , pude hacer que los datos se vaciaran en la hoja predefinida de excel

dim Dsist1

Dsist1 = split(datos,"@@")
l_vector = Ubound(Dsist1) -1
response.write(l_vector)


Path=Server.MapPath("hola.xls")
Set XLSstrcxn = Server.CreateObject("ADODB.Connection")
XLSstrcxn.Open "DRIVER={Microsoft Excel DRIVER (*.xls)};DBQ= "& Path&";ReadOnly=0;"

Set sql = Server.CreateObject("ADODB.command")
sql.CommandType = 1
sql.ActiveConnection = XLSstrcxn

sql.CommandText= "INSERT INTO [Hoja1$]("&_
"DIRECCION,"&_
"MONTOS)"&_
"VALUES( '"&Dsist1(0)&"' ,'"&Dsist1(1)&"');"
sql.execute


rediseñe el codigo pero lo unico que varia en si es que al string de conexion le agregue ReadOnly=0

pero ahora tengo el sgte problema y es que lo datos que me deposita en el excel me los tira como texto y por lo tanto mis graficos no se ven por que el tipo de dato en excel es texto donde deberia ser numerico, cabe señalar que las columnas del excel estan debidamente configuradas para texto y numero segun corresponda.

entonces mi duda es como en el insert into de sql hago para que tome la variable como un numero y no como caracter

sql.CommandText= "INSERT INTO [Hoja1$]("&_
"DIRECCION,"&_
"MONTOS)"&_
"VALUES( '"&Dsist1(0)&"' ,"&Dsist1(1)&");"


para que asi lleguen al excel con formato de numero y con eso pueda ver mis graficos
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 19:30.