SaveToFile('datei.xls') - Spaltenzuordnung

Hallo!

Ich habe Messwerte, die ich mittels SaveToFile(‚datei.xls‘) ins Excel-Format bringen will. Mein Problem liegt darin, Werte den einzelnen Spalten zuzuweisen. Wie kann ich also gezielt Messwerte in Zeile x und Spalten y bringen?

Bisher habe ich einfach die Listbox verwendet und diese als .xls abgespeichert. Natürlich erreiche ich so keine gezielte Spaltenzuordnung.

Danke schon mal
Luggi

Hi!

ich habs damals so hinbekommen, dass ich mittels
Writeln(‚Message1[TABulator]Message2[TABulator]Message3[TAbulator]‘);

reingeschrieben habe, und das eben zeile für zeile…

Wie das ASCII Zeichen für Tabulator ist weiss ich gerade nicht, kann ich dir aber raussuchen,falls dus brauchst!

Grüsse-Sven.

ich habs damals so hinbekommen, dass ich mittels
Writeln(‚Message1[TABulator]Message2[TABulator]Message3[TAbulator]‘);

Funktioniert, danke!

luggi

Hi,
hier die etwas kompliziertere Methode über das ActiveX/Ole Objekt Excel und Co, weil: es kann ja mal sein, das der Inhalt selbst die Spaltentrenner beinhaltet und dann funktionierts nicht mehr mit TAB, resp. Semikolon und was nicht noch alles:

var
lcid,i : longint;
excel : TExcelApplication;
WS : TExcelWorksheet;
Workbook : TExcelWorkbook;
begin
lcid := GetUserDefaultLCID;
Workbook.ConnectTo(Excel.Workbooks.Add
(TOleEnum(xlWBATWorksheet), lcid));
Ws.ConnectTo (Workbook.Worksheets[1] as _Worksheet);
// excel ist da, aber nicht sichtbar
Excel.Visible[lcid]:=false;
// Spalte 1, Zeile 1
Ws.Cells.Item[1, 1].Value:=‚Name‘;
// Spalte 2, Zeile 1
Ws.Cells.Item[1, 2].Value:=‚Vorname‘;
// bischen die Farbe ändern…
Ws.Range[‚A2‘, ‚A2‘].EntireRow.Interior.Color:=clYellow;
// bischen Fetter
Ws.Range[‚A2‘, ‚A2‘].Font.FontStyle := ‚Bold‘;
// Jetzt die weiteren Spalten und Zeilen füttern
for I:=0 to endlos do begin
Ws.Cells.Item[I, 1].Value:=‚Name…‘;
Ws.Cells.Item[I, 2].Value:=‚Vorname…‘;
end;
// Exceltabelle sichern
Ws.SaveAs(‚meineExcelDatei.xls‘);
// und aufräumen
Ws.Disconnect;
Workbook.Disconnect;
Excel.Disconnect;
end;

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Mathias!

Methode über das ActiveX/Ole
Objekt Excel und Co, weil: es kann ja mal sein, das der Inhalt
selbst die Spaltentrenner beinhaltet und dann funktionierts
nicht mehr mit TAB, resp. Semikolon und was nicht noch alles:

Genau, daran hab ich gar nicht gedacht.
Unten beschreibst du, wie es mit dem Ole-Ding :smile: gemacht wird - es klappt (bei mir) aber nicht. Kannst du mir das nochmal erklären? Vielleicht anhand eines Beispiels - was weiß ich; auf ButtonClick schreibe in Zeile/Spalte, speichere Excel-Formular (oder besser Drucke es und beende Excel, ohne dass Excel-Formular gesehen wird). Das bräuchte ich.

Hab mich immer schon gefragt wofür diese „Ole’s“ sind. Jetzt hast du mich neugierig gemacht. Bitte nochmal erklären - DANKE!

Luggi

var
lcid,i : longint;
excel : TExcelApplication;
WS : TExcelWorksheet;
Workbook : TExcelWorkbook;
begin
lcid := GetUserDefaultLCID;
Workbook.ConnectTo(Excel.Workbooks.Add
(TOleEnum(xlWBATWorksheet), lcid));
Ws.ConnectTo (Workbook.Worksheets[1] as _Worksheet);
// excel ist da, aber nicht sichtbar
Excel.Visible[lcid]:=false;
// Spalte 1, Zeile 1
Ws.Cells.Item[1, 1].Value:=‚Name‘;
// Spalte 2, Zeile 1
Ws.Cells.Item[1, 2].Value:=‚Vorname‘;
// bischen die Farbe ändern…
Ws.Range[‚A2‘, ‚A2‘].EntireRow.Interior.Color:=clYellow;
// bischen Fetter
Ws.Range[‚A2‘, ‚A2‘].Font.FontStyle := ‚Bold‘;
// Jetzt die weiteren Spalten und Zeilen füttern
for I:=0 to endlos do begin
Ws.Cells.Item[I, 1].Value:=‚Name…‘;
Ws.Cells.Item[I, 2].Value:=‚Vorname…‘;
end;
// Exceltabelle sichern
Ws.SaveAs(‚meineExcelDatei.xls‘);
// und aufräumen
Ws.Disconnect;
Workbook.Disconnect;
Excel.Disconnect;
end;

Hallo Mathias!

Methode über das ActiveX/Ole
Objekt Excel und Co, weil: es kann ja mal sein, das der Inhalt
selbst die Spaltentrenner beinhaltet und dann funktionierts
nicht mehr mit TAB, resp. Semikolon und was nicht noch alles:

Genau, daran hab ich gar nicht gedacht.
Unten beschreibst du, wie es mit dem Ole-Ding :smile: gemacht wird

  • es klappt (bei mir) aber nicht. Kannst du mir das nochmal
    erklären? Vielleicht anhand eines Beispiels - was weiß ich;
    auf ButtonClick schreibe in Zeile/Spalte, speichere
    Excel-Formular (oder besser Drucke es und beende Excel, ohne
    dass Excel-Formular gesehen wird). Das bräuchte ich.

Hab mich immer schon gefragt wofür diese „Ole’s“ sind. Jetzt
hast du mich neugierig gemacht. Bitte nochmal erklären -
DANKE!

Luggi

Hi Luggi,
ich versuchs am Wochenende - kommt per Mail.
Grüße
Mathias