Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Breite einer Tabellenspalte anhand vom Inhalt berechnen
Ludus
myCSharp.de - Member



Dabei seit:
Beiträge: 27

Themenstarter:

Breite einer Tabellenspalte anhand vom Inhalt berechnen

beantworten | zitieren | melden

Hallo,
für einen Export von xml nach Word docx müsste ich die "optimale" Breite z.B. einer Tabellenspalte berechnen, anhand des Inhalts. Ist in erster Näherung die Summe der Breite der Zeichen. Damit sieht mein Output aber noch häßlich aus.

Wenn ich aber jetzt Formatierungen (fett, hochgestellt...) oder Fußnoten oder Aufzählungen und so'n Kack (uups) auch berücksichtigen würde, müsste ich viel Aufwand betreiben?

Gibt es einen easy way? Irgend eine Magie? Kann mir Word sowas berechnen?
Ich bin unterwegs mit OpenXML mit SDK 2.0

Also, für jeden Schubser in eine richtige Richtung wäre ich dankbar!
private Nachricht | Beiträge des Benutzers
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1928
Herkunft: NRW

beantworten | zitieren | melden

Hallo!

Das wird sehr schwierig werden.
Erster Ansatzpunkt ist der darstellende Font. Dann ein Graphics-Objekt erstellen, und die Ausmaße der Inhalte einer Spalte nacheinander abfragen (irgendeine Measure-Methode im Graphics-Objekt), den größten Wert nehmen, und in das Koordinatensystem für die Worddatei umrechnen.
Aber selbst dann wirst du nur Näherungswerte haben, alleine schon durch die ganzen Umrechnungen.
Nobody is perfect. I'm sad, i'm not nobody
private Nachricht | Beiträge des Benutzers
Ludus
myCSharp.de - Member



Dabei seit:
Beiträge: 27

Themenstarter:

beantworten | zitieren | melden

Danke Tom,
Das wäre eine Lösung. Aber hui, das wäre ja für die Gallerie.

Mit deinem Vorschlag im Hinterkopf habe ich mir jetzt aber noch dieses überlegt:
Bei einem Absatzformat den linken Rand fix setzen und den rechtem Rand solange verkleinern, bis der enthaltene Text umgebrochen wird. Dann wäre die Differenz der Ränder ja die Satzbreite?!
private Nachricht | Beiträge des Benutzers
Grumbler85
myCSharp.de - Member



Dabei seit:
Beiträge: 550
Herkunft: Rheingau Taunus

beantworten | zitieren | melden

Ich kenn mich leider nicht mit der OpenXML SDK aus, aber vielleicht hilft's ja trotzdem:
Die Zellen bzw. Spalten in Word haben eine "bevorzugte Breite", wenn diese nicht gesetzt ist, passt Word automatisch die Breite der Spalte an den Inhalt an.
Vielleicht hast du die Möglichkeit eben dieses zu setzen.

Gruß
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
private Nachricht | Beiträge des Benutzers
Ludus
myCSharp.de - Member



Dabei seit:
Beiträge: 27

Themenstarter:

beantworten | zitieren | melden

coole Idee!
die Auto-Breite würde abhängig vom Inhalt eine Spalte definieren. Evtl. kann ich hier dann die Breite (z.B. in twips oder so) auslesen!

Danke.
private Nachricht | Beiträge des Benutzers