Lo he intentado algo asi y me funciona
Código Delphi
[-]
uses OleServer, ComObj;
const
xlWBATWorksheet = -4167;
var
frmcursoalumnos: Tfrmcursoalumnos;
Excel, WorkBook, WorkSheet: Variant;
J : integer;
nombre: String;
procedure Tfrmcursoalumnos.SpeedButton4Click(Sender: TObject);
begin
Excel := CreateOleObject('Excel.Application');
Excel.DisplayAlerts := false;
Workbook := Excel.Workbooks.Add(xlWBATWorksheet);
WorkSheet := WorkBook.WorkSheets[1];
WorkSheet.Name := MQcursos['curso'];
WorkSheet.Cells[1, 1] := 'Nombre';
WorkSheet.Cells[1, 2] := 'Incidencias';
J := 2;
MQverconvivencia.First;
While Not MQverconvivencia.Eof do
Begin
WorkSheet.Cells[j, 1] := MQverconvivencia['nombre'];
WorkSheet.Cells[j, 2] := MQverconvivencia['cantidad'];
j := j + 1;
MQverconvivencia.Next;
End;
nombre := 'c:\convivencia\' + MQcursos['curso'] + '.xlsx';
WorkBook.SaveAs(nombre);
Excel.Quit;
end;
Lo unico que no se es crear otras hojas y algunas caracteristicas como colores, fondos, etc..