Delphi-PRAXiS
Seite 2 von 3     12 3      

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)

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:53 Uhr.
Seite 2 von 3     12 3      

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