RE:Exportar datos de tabla paradox a Excel
Delphi tiene un componente de Excel para este tipo de cosas, basta con traer la unidad Excel2000 y ExcelXP (declararlas en el uses) para poder trabajar con ellos. El problema es que la información es escasa y no están bien definidos los metodos y son poco intuitivos.
Estas unidades generan la comunicación con el objeto Excel.Application. Si no quieres usarlas, puedes hacerlo a través de OleAutomation. Para esto, tienes que definir 3 variables tipo Variant, una para la aplicación de excel, otra para las hojas de calculo y otra para la hoja de cálculo que vas a usar. Así, lo que puedes hacer es lo siguiente, dado que tienes el dataset comuncándose con la tabla de Paradox:
procedure TForm1.Button1Click(Sender: TObject);
var
vExcel, vBook, vSheet: Variant;
nCol, nRow: Integer;
const
xlWBATWorksheet = -4167;
xlRangeAutoFormatSimple = -4154;
begin
vExcel := CreateOleObject('Excel.Application');
vBook := vExcel.WorkBooks.Add(xlWBATWorkSheet);
vSheet := vBook.WorkSheets[1];
vSheet.Name := 'Exporta';
for nCol := 1 to dtsParadox.DataSet.FieldCount do
vSheet.Range[Chr(64 + nCol) + '1'].Value = dtsParadox.DataSet.FieldList.Strings[nCol - 1];
dtsParadox.DataSet.First;
for nRow := 1 to dtsParadox.DataSet.RecordCount do
for nCol := 1 to dtsParadox.DataSet.FieldCount do
begin
vSheet.Range[Chr(64 + nCol) + IntToStr(nRow + 1)].Value := dtsParadox.DataSet.Fields.FieldByNumber(nCol - 1).Value;
dtsParadox.DataSet.Next;
end;
nRow := dtsParadox.DataSet.RecordCount
nCol := dtsParadox.DataSet.FieldCount
vExcel.Range['A1:' + Chr(64 + nCol) + IntToStr(nRow + 1)].AutoFormat(Format:=xlRangeAutoFormatSimple,
Number:=True, Font :=True, Alignment:=True, Border:=True, Pattern:=True, Width:=True);
vExcel.Visible := True;
end;
Donde dtsParadox es el dataset ligado a tu query o tabla en Paradox.
Espero que te sirva.
Saludos.