Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-06-2005
Pascual Montes Pascual Montes is offline
Baneado
 
Registrado: nov 2004
Posts: 76
Poder: 0
Pascual Montes Va por buen camino
Question Ancho de celdas al exportar a excel

Hola colegas, estoy exportando el contenido de un dbgrid obvio que esta
legado a un query, el detalle es que si exporta todas las columnas, pero
toma por default una longuitud fija a las celdas, Agradezco mucho si me
ilustran en como cambiar el tamaño o longuitud de las celdas en excel.


este codigo lo tome de aqui (clubdelphi.com) y lo adapte a mi codigo


with data.q1, data.Q1.SQL do
begin
Close;
Open;
if IsEmpty then
begin
MessageDlg('No existen datos que reportar!', mtWarning,[mbOk], 0);
Exit;
end;
TRY
excel := CreateOleObject('Excel.Application');
EXCEPT
ShowMessage('Excel no se pudo iniciar.');
exit;
END;
excel.Visible := true;
First;
fila := 1;
excel.Workbooks.Add;
//Poner los títulos
for columna := 0 to DbGrid1.Columns.Count-1 do
excel.Cells[fila,columna + 1].Value := DbGrid1.Columns[columna].Title.Caption;
fila:=3;
//Desengachar controles para agilizar
DisableControls;
TRY
while not(eof) do
begin
for columna := 0 to DbGrid1.Columns.Count-1 do


excel.Cells[fila,columna + 1].Value := FieldByName(DbGrid1.Columns

[columna].FieldName).asString;

Next;
inc(fila);
end;
EXCEPT
ShowMessage('Atención, se produjo un error en la transmisión.');
END;
EnableControls;
end;

muchas gracias por el tiempo , bye



Responder Con Cita
  #2  
Antiguo 01-06-2005
mminorm mminorm is offline
Miembro
 
Registrado: may 2005
Posts: 23
Poder: 0
mminorm Va por buen camino
Por casualidad tu no me podrias decir como hago lo inverso a eso ke estas preguntando, osea como exporto algo de excel 2003 a algún campo(edit,listbox,combobox) de delphi 7.0
Responder Con Cita
  #3  
Antiguo 01-06-2005
jgutti jgutti is offline
Miembro
 
Registrado: may 2003
Posts: 189
Poder: 21
jgutti Va por buen camino
excel.Columns[2].ColumnWidth :=20;
esto determina el ancho de 20 para toda la columna B
Responder Con Cita
  #4  
Antiguo 01-06-2005
Pascual Montes Pascual Montes is offline
Baneado
 
Registrado: nov 2004
Posts: 76
Poder: 0
Pascual Montes Va por buen camino
Lightbulb gracias problema resuelto

listo muchas gracias con eso solucione todo

mminor referente a lo que me preguntas de como hacer a la inversa
de exportar de excel hacia delphi, se me ocurre algo sencillo
a groso modo.

1. en excel exportas el contenido de tus celdas a formato ascii (texto)
en un formato predeterminado

2. en delphi lees ese archivo que generas en ascii , leyendo por bloques
es decir por pedasos obvio que cada bloke seria un campo de tu tabla
delphi o de una array o de variables de memoria o de lo que sea.

3. pasas el contenido que leiste a una tabla o el medio que necesites.
y lo guardas y/o manipulas a tu antojo.

ejemplo
en excel generas un archivo ascii con un formato parecido a esto

01 juan lopez 6850154
02 miria prado 5874522.
03 casimiro v 6855441

04 jose cota 552414
esto es un archivo ascci delimitado por espacio es decir que despues del
espacio empieza otro campo como aqui que contiene
primero un numero consecutivo, luego el nombre y por ultimo el numero de telefono.

despues en delphi lees este archivo texto de la manera siguiente.

procedure xxxxxxxxxxxx;

var
txt: textfile;
caracter: char;
cadena:string;
x:integer;

begin
assingfile(txt, 'c:\mis archivos\reporteexcel.txt');
reset(txt);
cadena:='';

for x:=1 to length(txt) do begin // hasta el tamaño del archivo ascii
//verifica no recuerdo si asi se optiene el tamaño del archivo texto .

do while caracter <> #32 do begin //mientras caracter leido no igual espacio
//verifica se puede comparar caracter <> #32 o caracter <> ' '
readln(txt, caracter); //lee siguente caracter del archivo ascii
cadena:=cadena+caracter; //acumula caracteres
end;
//aqui ya leyo el contenido de un campo completo ahora lo pasamos a
un campo de una tabla

tabla1campox.value:=cadena; //copiar valor campo a tabla
end; // fin del ciclo for

end;

Espero te sirva esto colega
cualquier cosa estamos en contacto en msn
mtpedro@hotmail.com
Responder Con Cita
  #5  
Antiguo 01-06-2005
mminorm mminorm is offline
Miembro
 
Registrado: may 2005
Posts: 23
Poder: 0
mminorm Va por buen camino
Muchas gracias por la idea Pascual Montes, espero me sirva. Cualkier cosa espero no t moleste t estaria preguntando mas acerca del tema
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:14:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi