Mira, yo lo que hago es lo siguiente ... (sin usar componentes y MUY rapido)
Segui los pasos y vas a ver que es facil.
1- Agrega esto en los uses: ComObj
2- Defini dos variables variant con estos nombres en un procedimiento o como campos privados del form.
var Excel, Libro : Variant
3- Al momento de crear la planilla Excel (cuando haces click en un boton por ejemplo) ejecuta este codigo.
// Crea una aplicacion Excel.
Excel := CreateOleObject ('Excel.Application');
// La muestra (vas a ver un Excel como si lu ubieras ejecutado)
Excel.Visible := True;
// Agrega un libro.
Excel.WorkBooks.Add (-4167);
// Le asigna un nombre al libro
Excel.WorkBooks[1].WorkSheets[1].Name := 'Reporte';
// Hace un puntero al libro del Excel.
Libro := Excel.WorkBooks[1].WorkSheets['Reporte'];
4- Haces la consulta en tu base de datos (yo supongo que lo haces con un TQuery) a continuacion del codigo del punto 3.
Query.SQL.Add ('Consulta');
Query.Open;
while not Query.EOF do begin
Libro.Cells [1,1] := Query.FieldByName ('Campo1').AsString;
Libro.Cells [2,1] := Query.FieldByName ('Campo2').AsString;
// ... Asi por cada campo que queres pasar.
// Fijate que uso Libro.Cells [Col, Row] que escribe en cada celda del libro.
// Tambien podes hacer un FOR y acceder a las columnas de la consulta por
// numero y no por nombre para no tener que escribir cada campo.
end;
Query.Close;
Bueno, espero que te halla resultado, contame como te fue ...
|