Fernsteuerung von Excel
15. Dez 2005, 10:08
Hallo alles zusammen, ich habe folgendes Problem:
Ich tüftel derzeit daran, Excel via Delphi fernzusteuern. Ich möchte, dass Excel eine *.csv Datei öffnet und dann auch gleich die Spalten formatiert. Dazu habe ich die Makro aufzeichnung gewählt und alles so eingestellt, wie ich es gerne haben möchte. Danach hab ich mir den mitgeschnittenen VB-Quellcode in Excel angeschaut und dieses dann angepasst und nach Delphi übernommen und compatibel gemacht. Leider ist dies nicht ganz so einfach, wie ich es mir gedacht hatte.
Der gesamte Quellcode sieht derzeit wie folgt aus:
procedure TForm1.Button1Click(Sender: TObject);
var
excel: Variant;
begin
excel := CreateOleObject('Excel.Application');
excel.visible := true;
excel.Workbooks.Add;
excel.ActiveSheet.QueryTables.Add('Connection:= _ "TEXT;C:\Dokumente und Einstellungen\Stefan\Desktop\daten.csv"', 'Destination:= _ Range("A1")');
excel.activesheet.name := 'Daten';
excel.activesheet.fieldnames := false;
excel.rownumbers := false;
excel.filladjacentformulas := false;
excel.PreserveFormatting := True;
excel.RefreshOnFileOpen := False;
excel.RefreshStyle := xlInsertDeleteCells;
excel.SavePassword := False;
excel.SaveData := True;
excel.AdjustColumnWidth := True;
excel.RefreshPeriod := 0;
excel.TextFilePromptOnRefresh := False;
excel.TextFilePlatform := 1252;
excel.TextFileStartRow := 1;
excel.TextFileParseType := xlDelimited;
excel.TextFileTextQualifier := xlTextQualifierNone;
excel.TextFileConsecutiveDelimiter := False;
excel.TextFileTabDelimiter := False;
excel.TextFileSemicolonDelimiter := True;
excel.TextFileCommaDelimiter := False;
excel.TextFileSpaceDelimiter := False;
excel.TextFileColumnDataTypes := 'Array(1,1)';
excel.TextFileTrailingMinusNumbers := True;
excel.Refresh;
excel.BackgroundQuery := False;
end
mein Problem hab ich derzeit mit der Zeile:
excel.ActiveSheet.QueryTables.Add('Connection:= _ "TEXT;C:\Dokumente und Einstellungen\Stefan\Desktop\daten.csv"', 'Destination:= _ Range("A1")');
Delphi sagt mir, dass es einen Typenkonflikt gibt. Leider komme ich nicht mehr weiter und hab auch keinen Rat mehr. Hab schon alles Mögliche versucht.
Der Originale Quellcode in Excel, den es nach Delphi zu übertragen gilt lauten so:
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Dokumente und Einstellungen\Stefan\Desktop\daten.csv", Destination:= _
Range("A1"))
.Name = "daten"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierNone
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1,1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With }
Vielleicht hat ja irgendwer einen Rat für mich. Bei google hab ich leider auch keine weiteren Hinweise finden können.
Danke schonmal im vorraus!
Stefan
|