PDA

Ver la Versión Completa : Creacion de mas hojas en Excel


Osvaldo Carlos
25-01-2006, 17:34:19
Estoy trabajando en D6 y necesito enviar datos a excel pero en un numero mayor de hojas de calculo que te presenta el Excel,(solo 3), estoy usando los componentes que te brinda el D6, para abrir el programa Excel y trasladar de la base de datos a las hojas de Excel, tal vez alguien puede disipar la duda que tengo.

Anabel
25-01-2006, 18:41:14
Hola Osvaldo!!!

Espero te sirva lo siguiente:

Necesitas de Delphi:
-TForm (obvio!!)
-TQuery
-SaveDialog
-TExcelapplication

var
LCID, LineNumber, h, s: Integer;
LineString :String; //
WorkBk : _WorkBook; // Define a WorkBook
WorkSheet : _WorkSheet; // Define a WorkSheet
IIndex : OleVariant;
begin
With SaveDialog1 do
begin
FileName:= '';
Filter:='Excel files|*.XLS;All Files|*.*';
DefaultExt := 'XLS';
Title:= 'Exportando a Excel';
IIndex := 1;
if execute then
begin
//Empieza el codigo para crear reporte en Excel
LCID := GetUserDefaultLCID;
With ExcelApplication1 do
begin
connect;
try
visible[LCID]:= True;
Workbooks.Add(EmptyParam,LCID); //Creamos el libro
WorkBk := WorkBooks.Item[IIndex];//Asignamos un Indice al libro
StandardFontSize[LCID] := 8;
StandardFont[LCID] := 'Arial';
h := 0; s := 0;
With qry do
begin
//aqui abres tu query
While not Eof do
begin
s := s + 1;
if h < 3 then // puedes también usar un FOR, yo aproveche el While de qry, ya que queria que cad registro cayera en una hoja diferente de Excel
begin
h := h+1;
WorkSheet := WorkBk.WorkSheets.Get_Item(h) as _WorkSheet;//Seleccionamos una hoja del libro seleccionado
end
else
begin
WorkBk.Worksheets.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam,LCID);
WorkSheet := WorkBk.WorkSheets.Get_Item(1) as _WorkSheet;//Seleccionamos una hoja del libro seleccionado
end;
Next;
end
end;
ActiveWorkbook.SaveAs(FileName,xlNormal,'','',false,false,xlNochange,xlUserResolution,False,EmptyPar am,EmptyParam,LCID);
//Quit;
finally
disconnect;
end; //try
end;//ExcelApplication1
end; //execute
end;//SaveDialog1

Bye!!!

mak8888
10-02-2006, 23:45:26
Una duda con respecto a ese código. Dónde insertas datos en Excel? Es decir, lees datos del qry para insertarlos en la hoja de excel, no? Xo donde haces esa parte, pq no la veo.
Recorres los registros del query y te posicionas en una u otra hoja, no? Donde me pierdo es donde se supone que haces la inserción de los datos del query. Puedes aclararme esta duda por favor.
Gracias de antemano.