Thema: Delphi Excel und Delphi

Einzelnen Beitrag anzeigen

David Martens

Registriert seit: 29. Sep 2003
205 Beiträge
 
Delphi XE Enterprise
 
#4

Re: Excel und Delphi

  Alt 4. Feb 2010, 17:45
Also zu 1. nochmal. Ich glaube jetzt habe ich die Antwort, aber wiso das so ist, keine Ahnung?

noch zur Info: damit die Übertragung der Daten schneller geht mache ich folgendes:

Delphi-Quellcode:
var
  Data : OleVariant;
  ...
begin
  ...
  i := 0;
  for iCol := 0 to TDataSource.DataSet.FieldCount - 1 do
  begin
    if TDataSource.DataSet.Fields[iCol].Visible then
      inc(i);
  end;
  ...
  Data := VarArrayCreate([0, TDataSource.DataSet.RecordCount - 1, 0, i - 1], varVariant);
  ...
  while (not TDataSource.DataSet.Eof) do
  begin
    ...
    if (FExcelServer.Version.Major >= 11) and // Excel 2003 und höher
       (iCol = iDatum) then // iDatum ist die Spalte des Datums
    begin
      Data[iRow, iCol - i] := TDataSource.DataSet.Fields.Fields[iCol].AsDateTime
    end
    else
    begin
      Data[iRow, iCol - i] := Trim(TDataSource.DataSet.Fields.Fields[iCol].AsString);
    end;
  end;
  ...
  FExcelServer.WriteRange(FStartRow,
                          FStartCol,
                          TDataSource.DataSet.RecordCount,
                          VisibleFieldCount,
                          Data);
  ...
end;
TDataSource.DataSet.Fields.Fields[iCol].AsDateTime ergibt für heute 40213. Also wird ja eigentlich nur diese Zahl eingetragen, aber Excel scheint es trotzdem zu erkennen.
  Mit Zitat antworten Zitat