Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   writeln für excel (https://www.delphipraxis.net/184411-writeln-fuer-excel.html)

danieldelphi 24. Mär 2015 10:23

writeln für excel
 
Hallo zusammen:)

man kann ja mit der writeln funktion zeilen weise in eine csv
Datei schreiben, gibt es ein Zeichen, das Excel sagt es soll in dieser Zeile die nächste Zelle befüllen?
Oder geht das mit wrtieln nicht, da der String vollständig einfach reingeschrieben wird?

Danke und viele Grüße.

DeddyH 24. Mär 2015 10:29

AW: writeln für excel
 
Ich weiß nicht, ob es nur mir so geht, aber ich habe nicht im Ansatz verstanden, was Du erreichen willst :gruebel:

mkinzler 24. Mär 2015 10:40

AW: writeln für excel
 
Du meinst line feed, müsste #A sein.

danieldelphi 24. Mär 2015 10:53

AW: writeln für excel
 
Zitat:

Zitat von DeddyH (Beitrag 1294602)
Ich weiß nicht, ob es nur mir so geht, aber ich habe nicht im Ansatz verstanden, was Du erreichen willst :gruebel:

ich möchte mit writeln in eine csv datei schreiben. das funktioniert ja auch, aber dann ist alles in einer Zelle. Und ich möchte eine Separator haben, der Excel sagt ab hier neue zelle

=)

DeddyH 24. Mär 2015 10:55

AW: writeln für excel
 
Welches Trennzeichen verwendest Du denn?

Union 24. Mär 2015 10:56

AW: writeln für excel
 
Das Trennzeichen kann der Strichpunkt oder ein Tabulator sein. Das kannst Du auch herausfinden, indem Du einmal Testdaten mit Excel als csv speicherst - oder hier im Forum suchst.

himitsu 24. Mär 2015 10:58

AW: writeln für excel
 
Kommt drauf an, wie man im Excel die CSV improtiert-

Per Definition "comma separated value", wäre es also das Komma "," :stupid:,
aber Excel kann auch mit Tabulatoren, Semikolons und vielem mehr umgehn ... je nachdem, was man beim Öffnen/Import angibt.

DeddyH 24. Mär 2015 10:58

AW: writeln für excel
 
Liste der Anhänge anzeigen (Anzahl: 1)
Es können auch andere sein, aber dann muss man Excel mitteilen, welches es ist.

danieldelphi 24. Mär 2015 11:05

AW: writeln für excel
 
Zitat:

Zitat von DeddyH (Beitrag 1294612)
Welches Trennzeichen verwendest Du denn?

Okay also ich glaube ihr versteht nicht was ich meine, bzw glaube ich das geht gar nicht.

Ich will folgendes:

Delphi-Quellcode:
wrtieln("lsdfhhs"+separator+"jksfdn");
dabei schreibe ich in eine csv Datei und will, dass excel bei "separator ne neue zrelle beginnt.
Dass das bei Excel unter Import und so steht ist mir klar, ich ahbe auch genau dieses zeichen verwendet, aber da passiert nix. Dahe rmeine Vermutung dass das gar nicht geht. Da writeln einen einen string in excel schreibt ohne dass excel diese betrachtet oder?

Danke für eure antworten

himitsu 24. Mär 2015 11:27

AW: writeln für excel
 
Vielleicht verstehst du uns auch nur nicht?
Delphi-Quellcode:
const separator = ','; // oder was auch immer ... siehe unsere Antworten

WriteLn(thefile, 'lsdfhhs' + separator + 'jksfdn');
Und das funktioniert definitiv.


[add]
selbst sowas funktioniert
Delphi-Quellcode:
SL.Clear;
SL.Add('lsdfhhs');
SL.Add('jksfdn');
WriteLn(TheFile, SL.CommaText);
Delphi-Quellcode:
Line.Clear;
Line.Add('lsdfhhs');
Line.Add('jksfdn');
TheFile.Add(Line.CommaText);
TheFile.SaveToFile(TheFileName);

mkinzler 24. Mär 2015 11:28

AW: writeln für excel
 
Zellentrenner <> Zeilentrenner
Einen Zeilenumbrung innerhalb einer Zelle: #A
Eine neue Zeile: #D#A bzw. linebreak oder WriteLn() pro Zeile

noisy_master 24. Mär 2015 11:29

AW: writeln für excel
 
Moin,

es gibt bei Excel keinen "Separator" für die Zeilen. um mehrere Zeilen in Excel als csv zu Importieren brauchst du mehrere writeln's. Der Separator ist dazu da, um die Spalten voneinander zu trennen.

Welchen Excel dafür verwenden soll kannst du in der 1. Zeile im csv angeben mit sep=Trennzeichen


So sollte es also funktionieren:

Delphi-Quellcode:
writeln(f,'sep=;');  //Excel soll ; als Trennzeichen zwischen Spalten benutzen
writeln(f,'Zeile1_Spalte1;Zeile1_Spalte2;Zeile1_Spalte3'); //1.Zeile
writeln(f,'Zeile2_Spalte1;Zeile2_Spalte2;Zeile2_Spalte3'); //2.Zeile
.
.
.

bcvs 24. Mär 2015 11:31

AW: writeln für excel
 
Du suchst also das Trennzeichen, das Excel verwendet, wenn man z.B. im Explorer eine csv-Datei doppelklickt und nicht in Excel über den Textkonvertierungs-Assistenten geht.

Bei mir ist das ;

Probiers hat einfach mal aus.
Die üblichen Verdächtigen sind , ; und Tabulator (#9)

Sir Rufo 24. Mär 2015 11:53

AW: writeln für excel
 
EDIT Der TE will tatsächlich in die nächste ZELLE schreiben - meine Augen werden alt :stupid:
Zitat:

Zitat von Blödsinn von mir
mkinzler hat es als Einziger verstanden ;)

Der TE möchte, dass der Wert in der nächsten ZEILE und nicht in der nächsten ZELLE erscheint.

Dabei ist das ganz einfach, wenn etwas in die nächsten ZEILE soll, dann schreibe ich einfach eine neue Zeile
Delphi-Quellcode:
// Schreibe in ZWEI Zeilen
WriteLn( 'Zeile 1 - Spalte 1' );
WriteLn( 'Zeile 2 - Spalte 1' );
anstatt
Delphi-Quellcode:
// Schreibe in EINE Zeile
WriteLn( 'Zeile 1 - Spalte 1' + FormatSettings.ListSeparator + 'Zeile 1 - Spalte 2' );

Nur so nebenbei:

Delphi-Referenz durchsuchenFormatSettings.ListSeparator beinhaltet das Listentrennzeichen, was auch das lokal installierte Excel benutzt (das holt sich dieses Zeichen über den gleichen Weg -> Regionseinstellungen). Damit erübrigen sich die Verdächtigungen und auch jegliches Rätselraten.

Wer eine CSV-Datei an Empfänger versenden möchte, wo nicht klar ist, welche Landeseinstellungen die auf ihrem Rechner haben, so ist man gut beraten die CSV-Datei mit einer passenden Bei Google suchenschema.ini zu versenden.

bcvs 24. Mär 2015 12:05

AW: writeln für excel
 
Ich habe das schon auch verstanden. Der TE wusste ja nur nicht, welches Trennzeichen er nehmen soll.

DeddyH 24. Mär 2015 12:06

AW: writeln für excel
 
Zitat:

Zitat von Sir Rufo (Beitrag 1294627)
mkinzler hat es als Einziger verstanden ;)

Der TE möchte, dass der Wert in der nächsten ZEILE und nicht in der nächsten ZELLE erscheint.

Achja?
Zitat:

Zitat von danieldelphi (Beitrag 1294597)
gibt es ein Zeichen, das Excel sagt es soll in dieser Zeile die nächste Zelle befüllen?


Sir Rufo 24. Mär 2015 12:08

AW: writeln für excel
 
Zitat:

Zitat von bcvs (Beitrag 1294628)
Ich habe das schon auch verstanden. Der TE wusste ja nur nicht, welches Trennzeichen er nehmen soll.

Zitat:

Zitat von DeddyH (Beitrag 1294629)
Zitat:

Zitat von Sir Rufo (Beitrag 1294627)
mkinzler hat es als Einziger verstanden ;)

Der TE möchte, dass der Wert in der nächsten ZEILE und nicht in der nächsten ZELLE erscheint.

Achja?
Zitat:

Zitat von danieldelphi (Beitrag 1294597)
gibt es ein Zeichen, das Excel sagt es soll in dieser Zeile die nächste Zelle befüllen?


Ich hatte es falsch gelesen (s. Edit) - als Trennzeichen für die Zellen nimmt man aber am sinnvollsten das aus der Regionseinstellung :)

danieldelphi 24. Mär 2015 12:12

AW: writeln für excel
 
Zitat:

Zitat von Sir Rufo (Beitrag 1294630)
Zitat:

Zitat von bcvs (Beitrag 1294628)
Ich habe das schon auch verstanden. Der TE wusste ja nur nicht, welches Trennzeichen er nehmen soll.

Zitat:

Zitat von DeddyH (Beitrag 1294629)
Zitat:

Zitat von Sir Rufo (Beitrag 1294627)
mkinzler hat es als Einziger verstanden ;)

Der TE möchte, dass der Wert in der nächsten ZEILE und nicht in der nächsten ZELLE erscheint.

Achja?
Zitat:

Zitat von danieldelphi (Beitrag 1294597)
gibt es ein Zeichen, das Excel sagt es soll in dieser Zeile die nächste Zelle befüllen?


Ich hatte es falsch gelesen (s. Edit) - als Trennzeichen für die Zellen nimmt man aber am sinnvollsten das aus der Regionseinstellung :)

super danke! ich denke damit krieg ich es hin! vielen dank!

danieldelphi 24. Mär 2015 12:12

AW: writeln für excel
 
Echt Klasse diese Forum hier!

p80286 24. Mär 2015 12:26

AW: writeln für excel
 
Könnte mal jemand das für mich erklären?
geht es darum innerhalb einer Zelle in die nächste Zeile zu kommen oder soll eine neue ZellenZeile aufgemacht werden?

Gruß
K-H

DeddyH 24. Mär 2015 12:32

AW: writeln für excel
 
Es geht darum, innerhalb einer Zeile in die nächste Zelle zu kommen.

danieldelphi 24. Mär 2015 12:38

AW: writeln für excel
 
Zitat:

Zitat von Sir Rufo (Beitrag 1294630)
Zitat:

Zitat von bcvs (Beitrag 1294628)
Ich habe das schon auch verstanden. Der TE wusste ja nur nicht, welches Trennzeichen er nehmen soll.

Zitat:

Zitat von DeddyH (Beitrag 1294629)
Zitat:

Zitat von Sir Rufo (Beitrag 1294627)
mkinzler hat es als Einziger verstanden ;)

Der TE möchte, dass der Wert in der nächsten ZEILE und nicht in der nächsten ZELLE erscheint.

Achja?
Zitat:

Zitat von danieldelphi (Beitrag 1294597)
gibt es ein Zeichen, das Excel sagt es soll in dieser Zeile die nächste Zelle befüllen?


Ich hatte es falsch gelesen (s. Edit) - als Trennzeichen für die Zellen nimmt man aber am sinnvollsten das aus der Regionseinstellung :)

okay eine frage bleibt noch offen, delphi weigert sich einfach formatsettings zu benutzen, anscheinend ist es nicht in meinen sysutils drin, ich hab delphi 6, wurde das etwa erst danach gemachtr?

DeddyH 24. Mär 2015 12:59

AW: writeln für excel
 
In Delphi 6 waren das alles noch globale Variablen. Gibt es denn eine ListSeparator-Variable?

danieldelphi 24. Mär 2015 13:01

AW: writeln für excel
 
Zitat:

Zitat von danieldelphi (Beitrag 1294635)
Zitat:

Zitat von Sir Rufo (Beitrag 1294630)
Zitat:

Zitat von bcvs (Beitrag 1294628)
Ich habe das schon auch verstanden. Der TE wusste ja nur nicht, welches Trennzeichen er nehmen soll.

Zitat:

Zitat von DeddyH (Beitrag 1294629)
Zitat:

Zitat von Sir Rufo (Beitrag 1294627)
mkinzler hat es als Einziger verstanden ;)

Der TE möchte, dass der Wert in der nächsten ZEILE und nicht in der nächsten ZELLE erscheint.

Achja?
Zitat:

Zitat von danieldelphi (Beitrag 1294597)
gibt es ein Zeichen, das Excel sagt es soll in dieser Zeile die nächste Zelle befüllen?


Ich hatte es falsch gelesen (s. Edit) - als Trennzeichen für die Zellen nimmt man aber am sinnvollsten das aus der Regionseinstellung :)

okay eine frage bleibt noch offen, delphi weigert sich einfach formatsettings zu benutzen, anscheinend ist es nicht in meinen sysutils drin, ich hab delphi 6, wurde das etwa erst danach gemachtr?

Okay scheint tformatsettings in delphi 6 wirklich noch nicht zugeben.

danieldelphi 24. Mär 2015 13:38

AW: writeln für excel
 
Zitat:

Zitat von DeddyH (Beitrag 1294638)
In Delphi 6 waren das alles noch globale Variablen. Gibt es denn eine ListSeparator-Variable?

ja die gibt es:)

DeddyH 24. Mär 2015 13:40

AW: writeln für excel
 
Na prima, dann kannst Du die ja nehmen ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:54 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