Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-03-2005
fmonte fmonte is offline
Miembro
 
Registrado: ago 2004
Ubicación: Tandil
Posts: 67
Poder: 23
fmonte Va por buen camino
Cita:
Empezado por Neftali
Creo que lo más fácil es que exportes el contenido del StringGrid a CSV (archivo separado por comas); Éstos ficheros se abren directamente desde Excel sin problemas (independientemente de la versión).

Ésta código guarda el contenido del StringGrid en el portapapeles, pero cambiando la última línea (1)/(2) se puede hacer que lo guarde en un fichero .CSV

Código Delphi [-]
var
i, j:Integer;
Str:String;
TS:TStrings;
begin
// Inicializamos
Str := '';
// Para cada línea de las selecciondas
for i := (StringGrid1.Selection.Top) to (StringGrid1.Selection.Bottom) do begin
// Si no es la 1ª linea, añadimos un salto de línea
if (i <> StringGrid1.Selection.Top) then begin
Str := Str + #13#10;
end;
// Para cada elemento dentro de la línea (celdas)
for j := 0 to (StringGrid1.Rows[i].Count - 1) do begin
// Si no es la primera celda, añadimos un separados
if (j <> 0) then begin
Str := Str + #9;
end;
// Construimos la cadena
Str := Str + StringGrid1.Rows[i].Strings[j];
end;
 
// (1) La guardamos en el clipboard (como texto)
Clipboard.AsText := Str
// (2) Para guardarloa fichero...
TS := TStringList.CReate()
TS.Text := Str;
TS.SAveToFile('c:\salida.csv');
TS.Free;
end;
excelente codigo, justo lo q estaba buscando! muchisimas gracias!
Responder Con Cita
  #2  
Antiguo 29-11-2006
sebamora sebamora is offline
Miembro
 
Registrado: nov 2006
Ubicación: salta - argentina
Posts: 32
Poder: 0
sebamora Va por buen camino
stringgrid a excel sin dramas

aqui hay un codigo q pasa de un stringgrid a excel xo necesita tener el excel instalado, aunque ni cuenta te das q lo usa

procedure tform1.guardar(archivo:string);
var
celi,celj:integer;
begin
try
try
ExcelSave.Connect;
ExcelWB2.ConnectTo(ExcelSave.Workbooks.Add(EmptyParam,0));
ExcelWS2.ConnectTo(ExcelWB2.Worksheets[1] as _Worksheet);
stringgrid1.Visible:=false;
progressbar1.Visible:=true;
progressbar1.Min:=1;
progressbar1.Position:=1;
progressbar1.Max:=stringgrid1.ColCount*stringgrid1.RowCount;
for celi:=1 to stringgrid1.ColCount do
begin
for celj:=1 to stringgrid1.RowCount do
begin
progressbar1.Position:=progressbar1.Position+1;
ExcelWS2.Cells.Item[celj,celi].NumberFormat:='@';// formato de texto
ExcelWS2.Cells.Item[celj,celi].value:=stringgrid1.Cells[celi, celj];
end;
end;
ExcelWB2.SaveAs(archivo, //nombre para guardar (string)
xlNormal,'','',
EmptyParam,EmptyParam,0, EmptyParam, EmptyParam, EmptyParam,EmptyParam,
EmptyParam,0);
stringgrid1.Visible:=true;
progressbar1.Visible:=false;
except
Application.MessageBox('Error al guardar el archivo','Alerta',MB_ICONWARNING);
end;
Finally
ExcelWB2.Close;
ExcelSave.Quit;
ExcelWS2.Disconnect;
ExcelWB2.Disconnect;
ExcelSave.Disconnect;
end;
end;


donde insertamos los sgtes componentes en el form:

ExcelSave: TExcelApplication;
ExcelWB2: TExcelWorkbook;
ExcelWS2: TExcelWorksheet;
ProgressBar1: TProgressBar;
StringGrid1: TStringGrid;
Responder Con Cita
  #3  
Antiguo 29-11-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.453
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
sebamora, utiliza TAG's cuando escribas código Delphi, Verás como mejora bastante.
Puedes editar tu mensaje anterior y probarlo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 29-11-2006
sebamora sebamora is offline
Miembro
 
Registrado: nov 2006
Ubicación: salta - argentina
Posts: 32
Poder: 0
sebamora Va por buen camino
hola neftali perodon por no poner tags, no tenia idea, aqui va el mismo ejemplo con tags para ver como sale. sds

Código Delphi [-]
procedure tform1.guardar(archivo:string);
var
celi,celj:integer;
begin
try
try
ExcelSave.Connect;
ExcelWB2.ConnectTo(ExcelSave.Workbooks.Add(EmptyParam,0));
ExcelWS2.ConnectTo(ExcelWB2.Worksheets[1] as _Worksheet);
stringgrid1.Visible:=false;
progressbar1.Visible:=true;
progressbar1.Min:=1;
progressbar1.Position:=1;
progressbar1.Max:=stringgrid1.ColCount*stringgrid1.RowCount;
for celi:=1 to stringgrid1.ColCount do
begin
for celj:=1 to stringgrid1.RowCount do
begin
progressbar1.Position:=progressbar1.Position+1;
ExcelWS2.Cells.Item[celj,celi].NumberFormat:='@';// formato de texto
ExcelWS2.Cells.Item[celj,celi].value:=stringgrid1.Cells[celi, celj];
end;
end;
ExcelWB2.SaveAs(archivo, //nombre para guardar (string)
xlNormal,'','',
EmptyParam,EmptyParam,0, EmptyParam, EmptyParam, EmptyParam,EmptyParam,
EmptyParam,0);
stringgrid1.Visible:=true;
progressbar1.Visible:=false;
except
Application.MessageBox('Error al guardar el archivo','Alerta',MB_ICONWARNING);
end;
Finally
ExcelWB2.Close;
ExcelSave.Quit;
ExcelWS2.Disconnect;
ExcelWB2.Disconnect;
ExcelSave.Disconnect;
end;
end;




donde insertamos los sgtes componentes en el form:

Código Delphi [-]
ExcelSave: TExcelApplication;
ExcelWB2: TExcelWorkbook;
ExcelWS2: TExcelWorksheet;
ProgressBar1: TProgressBar;
StringGrid1: TStringGrid;
P\D: si necesitan codigo para cargar desde excel a un stringgrid tambien tengo, solo avisen

Última edición por Neftali [Germán.Estévez] fecha: 30-11-2006 a las 11:13:49.
Responder Con Cita
  #5  
Antiguo 02-01-2007
abaigorria abaigorria is offline
Registrado
 
Registrado: oct 2006
Posts: 1
Poder: 0
abaigorria Va por buen camino
"P\D: si necesitan codigo para cargar desde excel a un stringgrid tambien tengo, solo avisen"

Podrias postear este codigo, de cargar en un stringgrid un exel, disculp La molestias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 09:35:16.


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