Laden...

String mit Zeilenumbruch nach maximal 60 Zeichen (in Excelzelle schreiben)

Erstellt von tschai vor 9 Jahren Letzter Beitrag vor 9 Jahren 3.893 Views
Thema geschlossen
T
tschai Themenstarter:in
2 Beiträge seit 2014
vor 9 Jahren
String mit Zeilenumbruch nach maximal 60 Zeichen (in Excelzelle schreiben)

Hallo,
habe einen beliebigen String, der keine Zeilenumbrüche enthält.
Dieser String soll in eine Excelzelle geschrieben werden und dort natürlich mit Zeilenumbrüchen versehen werden 😉
Wie kann man das umsetzen?

2.207 Beiträge seit 2011
vor 9 Jahren

Hallo tschai,

Willkommen im Forum.

Beachte bitte [Hinweis] Wie poste ich richtig? 1.1. , 1.1.1. und 4*.

Probiers mal mit "Environment.NewLine". Bitte sag uns was du probiert hast, wo es hängt. Was hast du bisher unternommen? Zeige bitte Eigeninitiative.

Gruss

Coffeebean

T
tschai Themenstarter:in
2 Beiträge seit 2014
vor 9 Jahren

hi,
muss mich noch orientieren...

also das habe ich schon mal versucht:
sNotiz ist der String...ein Text mit Leerzeichen und Wörtern...


string formattedContent = string.Empty;
for (int i = 0; i <= sNotiz.Length / 60; i++)
                    {
                        int currentStartIndex = i * 60;
                        if (currentStartIndex + 60 < sNotiz.Length)
                        {
                            formattedContent += string.Format(@"{0}{1}", sNotiz.Substring(currentStartIndex, 60), Environment.NewLine);
                        }
                        else
                        {
                            int length = sNotiz.Length - currentStartIndex;
                            formattedContent += string.Format(@"{0}{1}", sNotiz.Substring(currentStartIndex, length), Environment.NewLine);
                        }

allerdings wird der Text einfach nach 60 Zeichen abgeschnitten...

schöner wäre es, wenn man auf Leerzeichen achten könnte...etc..

49.485 Beiträge seit 2005
vor 9 Jahren

Hallo tschai,

im ersten Moment hatte ich gedacht, du würdest etwas excelspezifisches wissen wollen, aber in deiner Nachfrage geht es ja nur darum, in einem normalen C# String nach maximal 60 Zeichen einen Zeilenumbruch einzufügen und das möglichst zwischen zwei Worten.

Das fällt allerdings unter [Hinweis] Wie poste ich richtig? Punkt 1.1.1 und 1.1.

Es ist ja ein leichtes, den String Zeichen für Zeichen durchzugehen, sich die Position des aktuell letzten gefunden Leerzeichen zu merken und wenn man beim 61sten Zeichen angekommen ist, ohne das dies ein Leerzeichen ist, den String an der Stelle des letzten Leerzeichens aufzuteilen. Und das in einer Schleife für alle so entstehenden Zeilen. Klar es gibt immer ein paar Sonderfälle, z.B. wenn es in den 60 Zeichen gar kein Leerzeichen gibt, dann könnte man nach einen Bindestrich suchen. Wenn es gar keine gute Trennmöglichkeit gibt, dann muss man eben mitten im Text/Wort trennen.

Außerdem wird man fertige Codebeispiele, die das tun, im Netz (vermutlich sogar im Forum) finden.

Das berücksichtigt allerdings nicht, dass verschieden Zeichen unterschiedlich breit sein können. Besser wäre also wohl ein automatisches Wordwrap von Excel. Aber auch das scheint mit eine Standard-Aufgabe zu sein, für die es Lösungen im Netz gibt.

herbivore

Thema geschlossen