Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ancho de celdas al exportar a excel (https://www.clubdelphi.com/foros/showthread.php?t=21909)

Pascual Montes 01-06-2005 02:01:30

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 :D




mminorm 01-06-2005 06:45:19

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

jgutti 01-06-2005 14:35:52

excel.Columns[2].ColumnWidth :=20;
esto determina el ancho de 20 para toda la columna B

Pascual Montes 01-06-2005 18:13:52

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

mminorm 01-06-2005 20:07:20

Muchas gracias por la idea Pascual Montes, espero me sirva. Cualkier cosa espero no t moleste t estaria preguntando mas acerca del tema


La franja horaria es GMT +2. Ahora son las 10:29:35.

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