![]() |
AW: Export nach Excel
Zitat:
CSV ist nur gut, wenn die Windows-Versionen aus dem gleichen Land kommen (bzw. identische Listen-, Dezimal- und Datumstrennzeichen sowie das identische Datumsformat besitzen. Es eignet sich also quasi nur abteilungsintern oder für kleine Betriebe. Zitat:
Wie gesagt: Solange Du im gleichen Land bleibst, hast Du 0 Probeme. Sonst wird es albern (also z.B. US-CSV in Deutschland importieren usw.). Aber was erzähl ich Dir das, Du weisst das ja. |
AW: Export nach Excel
mit den Routinen aus #17 für den Weg über die Zwischenablage hatte ich mit folgendem Code bisher keinen Ärger (gegf. müsste #9 ausgesiebt werden)
Delphi-Quellcode:
Function GetAds4Excel(ads:TAdoDataset):String;
var sl:TStringList; s:String; i:Integer; Procedure ClipIt; begin s := Copy(s,1,length(s) - 1); sl.Add(s); s := ''; end; begin sl:=TStringList.Create; try s := ''; For i := 0 to ads.FieldCount - 1 do begin if ads.Fields[i].Visible then s := s + ads.Fields[i].DisplayLabel + #9; end; ClipIt; while not Ads.Eof do begin For i := 0 to ads.FieldCount - 1 do begin if ads.Fields[i].Visible then s := s + ads.Fields[i].DisplayText + #9; end; ClipIt; Ads.Next; end; Result := sl.Text; finally sl.Free; end; end; |
AW: Export nach Excel
Wobei die Stringliste noch viel mehr Features bietet.
Delphi-Quellcode:
Und wenn man will, kann man auch noch die Enumeratoren ausnutzen.
function GetAds4Excel(ads: TAdoDataset): string;
var sl, sl2: TStringList; i: Integer; begin sl := TStringList.Create; sl2 := TStringList.Create; try sl2.Delimiter := #9; for i := 0 to ads.FieldCount - 1 do if ads.Fields[i].Visible then sl2.Add(ads.Fields[i].DisplayLabel); sl.Add(sl2.DelimitedText); Ads.First; while not Ads.Eof do begin sl2.Clear; for i := 0 to ads.FieldCount - 1 do if ads.Fields[i].Visible then sl2.Add(ads.Fields[i].DisplayText); sl.Add(sl2.DelimitedText); Ads.Next; end; //sl.LineBreak := #10; Result := sl.Text; finally sl2.Free; sl.Free; end; end;
Delphi-Quellcode:
Damit optimiert man sogar noch die vielen Stringconcatinierungen, bzw. das Speichermanagement, welches nur noch einmal pro Zeile alles zusammenfügt und nicht bei jedem einzelnem Wert.
function GetAds4Excel(ads: TAdoDataset): string;
var sl, sl2: TStringList; F: TField; begin sl := TStringList.Create; sl2 := TStringList.Create; try sl2.Delimiter := #9; for F in ads.Fields do if F.Visible then sl2.Add(F.DisplayLabel); sl.Add(sl2.DelimitedText); Ads.First; while not Ads.Eof do begin sl2.Clear; for F in ads.Fields do if F.Visible then sl2.Add(F.DisplayText); sl.Add(sl2.DelimitedText); Ads.Next; end; //sl.LineBreak := #10; Result := sl.Text; finally sl2.Free; sl.Free; end; end; Mit der selben Technik lassen sich auch CSVs erstellen oder auslesen, wobei das ja schon eine CSV ist, nur eben mit Tabulator als Trennzeichen. |
AW: Export nach Excel
Zitat:
|
AW: Export nach Excel
@Furtbichler
Excel kennt auch Text-Dateien, bei denen die Spalten durch Tabulatoren getrennt werden. Ob diese dann durch Doppelklick-Aufruf richtig erkannt werden, wie auch bei CSV steht auf einem anderen Blatt. Gruß K-H |
AW: Export nach Excel
Zitat:
Meines Wissens nach wird beim Laden über EXCEL ein Wizzard gestartet. |
AW: Export nach Excel
Ich meine Dateien mit .csv Endung können im Explorer per Doppelklick gesartet werden und öffnen sich daraufhin in Excel. Bei uns ist das so, dass die Komma getrennt sein müssen. Sind sie Semikolon getrennt, so schreibt Excel die ganze Zeile in eine Zelle.
Anders sieht das aus, wenn man Excel offen hat und eine entsprechenden .csv oder .txt Datei per "Datei öffnen" öffnet. Dann kommt so ein Assistent und man kann da diverses Einstellen. Was mir mal ganz blöde aufgestossen ist, ist das Speichern eines Excel-Sheets über VBA mit .SaveAs und dann als parameter CSV wählen (weiß den genauen Namen gerade nicht). Dann speichert der bei uns das mit Komma getrennt, trennt Datensätze aber nicht durch Zeilenumbruch sondern durch Zwei-Kommas. Mehr brauch ich wohl nicht sagen. Benutze SaveAs daher so nicht, sondern schreib das schnell selbst in eine Textdatei über so ien Filesystem-Objekt. |
AW: Export nach Excel
Zitat:
|
AW: Export nach Excel
Hallo Freunde,
meinetwegen könnt ihr ja noch ewig über CSV-Dateien usw. diskutieren. Für mich ist die Angelegenheit mit meiner Untit erledigt. Und auch die anfangs vermisste BPL-Datei habe ich inzwischen gefunden. joehoehal |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 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-2025 by Thomas Breitkreuz