FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
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
|
#3
|
|||
|
|||
excel.Columns[2].ColumnWidth :=20;
esto determina el ancho de 20 para toda la columna B |
#4
|
|||
|
|||
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 |
#5
|
|||
|
|||
Muchas gracias por la idea Pascual Montes, espero me sirva. Cualkier cosa espero no t moleste t estaria preguntando mas acerca del tema
|
|
|
|