Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Stringgrid als Excel speichern (https://www.delphipraxis.net/122539-stringgrid-als-excel-speichern.html)

Bengalo 17. Okt 2008 20:17


Stringgrid als Excel speichern
 
So , hab ein weiteres Problem und zwar:
Ich versuche ein Stringgrid auszulesen und es dann in eine Excel Tabelle zu speichern. Wenn ich es auf einen Button lege , mit einem festen Pfad und einem festen Namen funktioniert es einwandfrei , jedoch wenn ich es mit opendialog machen will , damit ich flexibler bin , bekomme ich immer Probleme bei der Zeile:

Delphi-Quellcode:
Excel.ActiveWorkbook.SaveAs(ExtractFilePath(Application.ExeName)+'/'+Speichername);
Die Prozedur sieht folgendermaßen aus:

Delphi-Quellcode:
procedure TForm1.Speichernunter1Click(Sender: TObject);
var excel:Variant;
    i,j:integer;
    Speichername:string;
begin
  if SaveDialog1.Execute then begin
    try
      excel := CreateOleObject('Excel.Application');
      excel.visible := False;
    except
      ShowMessage('Excel konnte nicht gestartet werden !');
    end;

    Excel.Workbooks.Add;
    for j:=1 to 5
      do begin
        for i:=1 to Notentabelle.RowCount
        do Excel.Cells[i, j].Value:=Notentabelle.Cells[j,i];
      end;
    Speichername:=SaveDialog1.FileName;
    Excel.ActiveWorkbook.SaveAs(ExtractFilePath(Application.ExeName)+'/'+Speichername);
    Excel.Quit;
    Excel := Unassigned;
    end;
end;
Hat einer von euch ne Ahnung woran es liegt? Warum nimmt er den Speichernamen nicht an? Und wie kann ich ihm sagen welchen Ordner ich ausgewählt habe , anstelle des ExtractfilePath?
Vielen Danke im Vorraus :-)

mkinzler 17. Okt 2008 20:19

Re: Stringgrid als Excel speichern
 
ExtractFilePath liefert dir schon einen Backslash, den (bei Windows falsche) Slash, den du einfügst ist also zu viel

hoika 17. Okt 2008 20:20

Re: Stringgrid als Excel speichern
 
Hallo,

also immer alles in eine lokale Variable packen,
Breakpoint drauf und debuggen.


Heiko

Bengalo 17. Okt 2008 20:28

Re: Stringgrid als Excel speichern
 
Alles klar , danke , jedoch bleibt das Problem , scheint also nicht der Einzige Fehler gewesen zu sein :(

@Heiko , danke für die Antwort , versteh leider nicht was du meinst , die Variablen sind alle lokal und mit Breackpoints setzen hab ich absolut keine Erfahrung , wie ich sie setze weis ich ,aber wohin und was soll mir das zeigen? Sorry für solche Noobfragen , aber ich benutze Delphi halt nur im Informatikleistungskurs...

Chemiker 17. Okt 2008 21:04

Re: Stringgrid als Excel speichern
 
Hallo Bengalo,

lass Dir doch mal den gesamten Path Anzeigen.

Einfach mal mit ShowMessage den kompletten Path ausgeben. Dann kann man den Fehler schon sehen.

Delphi-Quellcode:
Speichername:=SaveDialog1.FileName;

ShowMessage(ExtractFilePath(Application.ExeName)+'/'+Speichername);

Excel.ActiveWorkbook.SaveAs(ExtractFilePath(Application.ExeName)+'/'+Speichername);
Bis bald Chemiker

Bengalo 17. Okt 2008 21:10

Re: Stringgrid als Excel speichern
 
Super , vielen dank , war mir zwar fast sicher das ich das schonmal probiert hatte , aber scheinbar ja doch nicht. Vielen dank. Echt super hier :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:25 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz