![]() |
Excel (Import/Export)
Hallo!
Ich will eine Tabelle (StringGrid) nach Excel exportieren (also die Tabelle in einer Exceldatei abspeichern und diese automatisch mit excel öffnen) und wenn es möglich ist, auch die einträge aus einer exceldatei importieren. Wie mache ich das? Grüße, dopeline :dancer: |
Hallo Dopeline,
Ich habe mal ein Beispiel erstellt, mit dem man ein Excelsheet erstellen und mit Daten versorgen kann. ![]() Gruß, Tom |
Uff! geht das nicht einfacher? excel muss doch beim export gar nicht geöffnet werden. die tabelle ein meinem adressbuch-programm soll einfach nur (mit nem savedialog) irgentwo als xls gespeichert werden.
|
Du kannst sehr leicht über ADO auf Excel Dateien zugreifen. In deinem Fall besonders geeignet da es sich um eine Tabellenstruktur handelt.
Der Connectionstring sieht so aus:
Code:
Mit SQL Befehl "Create Table" kannst du deine Tabelle erzeugen und wie gewohnt mit Daten füllen.
Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=%s; Extended Properties= "Excel 8.0; HDR=Yes"; Persist Security Info=False; Persist Security Info=False Gruss, Tom |
Hallo,
es geht auch indem Du die Daten in eine csv-Datei schreibst und diese dann mit Excel öffnest. |
und wie mache ich das?
(bin newbie, was delphi angeht :oops: ) |
z.B. so:
Delphi-Quellcode:
var
F: TextFile; begin AssignFile(F, 'datei.csv'); Rewrite(F); Writeln(F, Format('%i,%d', IntegerWert, DezimalWert])); ... CloseFile(F); end; |
also hier ist ein Code zum speichern von stringgrids in eine csv datei, konnte sie nochnicht testen, werde dies aber im abend noch tun:
Delphi-Quellcode:
hoffe konnte helfe, cu
procedure TForm1.BtnSaveClick(Sender: TObject);
var R, C : integeR; S : string; begin for R := 0 to sg.RowCount - 1 do begin S := ''; for C := 0 to sg.ColCount - 1 do S := S + sg.Cells[C,R] + ';'; delete(S,length(S),1); //loescht den ueberfluessigen ; lb.Items.Append(S); end; lb.Items.SaveToFile('Exell.csv'); end; |
danke! das sollte funktionieren.
ich hab versucht, das mit nem savedialog zu machen, funktioniert aber nicht :( . Wie stelle ich das an? |
hier die version mit nem savedialog, du musst solchen nur auf deine form ziehen, nenne h savedialog dann kannst du denn code komplett kopieren!
Delphi-Quellcode:
um noch die endung csv hinzubekommen musst du im objekt inspektor vom savedialog bei filters einfach eine option mit *.csv eingeben! hast du noch probleme gib bescheid! wenn du willst kann ich dir die prozedur zum laden von csv dateien in delphi gib auch bescheid!
procedure TForm1.BtnSaveClick(Sender: TObject);
var R, C : integeR; S : string; begin * *for R := 0 to sg.RowCount - 1 do * * * begin * * * * *S := ''; * * * * *for C := 0 to sg.ColCount - 1 do * * * * * * S := S + sg.Cells[C,R] + ';'; * * * * *delete(S,length(S),1);* *//loescht den ueberfluessigen ; * * * * *lb.Items.Append(S); * * * end; if SaveDialog.Execute then * * lb.Items.SaveToFile(SaveDialog.Filename); //filename ist der pfad end; cu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz