Calc: Dynamische optimale Höhem und Breiten "wie in HTML"

Moin.

Klar, manuell konnte man schon immer in Tabellen die Funktionen "optimale Breite" und
"optimale Höhe" wählen.

Mich reizt ein Verhalten einer in der Entwicklung befindlichen Tabelle mit einem
smarten Verhalten wie eine Tabelle in HTML.

Dort wird bei gesetzter Gesamtbreite der Tabelle der Platz so geschickt verteilt,
dass die geringste Gesamthöhe der Tabelle dabei herauskommt.

Gibt es vielleicht Makros, die was Ähnliches mit einer Calc-Tabelle hinkriegen?

Ich mochte es noch nie, manuell Spaltenbreiten und -höhen festzulegen.

Ist klar geworden, was mein Anliegen ist? Ansonsten meldet euch gerne, dann erläutere
ich das noch ausführlicher.

VG Andreas

Hi Andreas,

meinst du, dass die optimale Spaltenbreite/-höhe nach jeder Eintragung
neu ermittelt wird? Dann wäre ein erster Ansatz, mit xRay zu gucken, ob
es die Zellen/Spalten/Zeilen das als fertige Methode haben, die du du
über ein Makro aufrufen kannst.

Viele Grüße

Stefan

Stefan Deutsch:

Hi Andreas,

meinst du, dass die optimale Spaltenbreite/-höhe nach jeder Eintragung
neu ermittelt wird?

Im Prinzip ja. Aber Speichern als Trigger wäre auch schon prima.

Dann wäre ein erster Ansatz, mit xRay zu gucken, ob
es die Zellen/Spalten/Zeilen das als fertige Methode haben, die du du
über ein Makro aufrufen kannst.

Mit xRay und Makros kenne ich mich nicht aus.

Nochmal aus Neugier:
Wäre es denn überhaupt programmiertechnisch machbar, das, was ich skizziert habe, per
Makro zu realisieren?

>> Dort wird bei gesetzter Gesamtbreite der Tabelle der Platz so
>> geschickt verteilt, dass die geringste Gesamthöhe der Tabelle
>> dabei herauskommt.

VG Andreas

Hallo Andreas,

optimale Spaltenbreite und -höhe heißt nach meinen paar Tests ja in Calc eher, dass sie so gesetzt werden, dass alle Zeilen des Texts einer Zelle sichtbar sind und die Wörter zumindest nicht abgeschnitten sind. Wenn man einen langen Text ohne Zeilenumbruch in eine Zelle schreibt, dann ergeben die beiden Funktionen ganz einfach eine einzeilige, sehr breite Zelle, die den gesamten Text enthält, und wenn in einer anderen Spalte der gleichen Zeile mehrzeilige Texte enthalten sind, bleibt dieser Text immer noch in einer Zeile.
Diese "optimal"-Funktionen sind also weit entfernt von der die ganze Tabelle betrachtenden HTML-Logik.
Ich bin überzeugt davon, dass es so etwas in LibO nicht gibt, und wenn, dann wäre es eher in Writer zu suchen (und ggf. dann auch in Impress (und Draw)) , denn das ist eine Anforderung, die hauptsächlich für textlastige Tabellen interessant ist, und Calc ist ja doch primär ein Werkzeug für zahlenlastige Tabellen, auch wenn es oft für andere Zwecke hergenommen wird. Auch HTML ist "seiten"-bezogen, was eine Tabellenkalkulation vom Grundsatz her ja nicht ist.
Schön wäre es sicher, eine solche Funktion zu haben, aber man müsste erst einmal einen Algorithmus haben, mit dem man die Zeilen- und Spaltenhöhen bestimmt. Weiß denn jemand, wie das in HTML berechnet wird? Dann bestünde eine Chance, dass jemand das als Makro (und vielleicht sogar als Extension) zur Verfügung stellt.
Andreas: bist du überhaupt sicher, dass deine Beschreibung der Anforderung: "geringste Gesamthöhe" zutrifft? Aber nehmen wir das einmal an. Dann besteht immer noch das Problem, das auf Calc zu übertragen. Denn dort wäre das zunächst einmal einfach die Funktion "optimale Zeilenhöhe", was aber bedeutet, dass die Summe der Zellenbreiten sehr groß werden könnte. Der springende Punkt ist, dass die Seitenbreite hinzukommt, die Anforderung, wenn sie denn korrekt ist, müsste zumindest präzisiert werden: "geringste Gesamthöhe unter Berücksichtigung der Seitenbreite" (die Tabellen ändern sich ja, wenn man das Fenster im Browser verbreitert oder -schmälert), und das beißt sich dann schon mit den Grundkonzepten von Calc.
Also: ich mache dir da keine Hoffnungen.

Viele Grüße
Gerhard

Gerhard Weydt:

Guten Morgen Gerhard.

optimale Spaltenbreite und -höhe heißt nach meinen paar Tests ja in Calc
eher, dass sie so gesetzt werden, dass alle Zeilen des Texts einer Zelle
sichtbar sind und die Wörter zumindest nicht abgeschnitten sind. Wenn
man einen langen Text ohne Zeilenumbruch in eine Zelle schreibt, dann
ergeben die beiden Funktionen ganz einfach eine einzeilige, sehr breite
Zelle, die den gesamten Text enthält, und wenn in einer anderen Spalte
der gleichen Zeile mehrzeilige Texte enthalten sind, bleibt dieser Text
immer noch in einer Zeile.
Diese "optimal"-Funktionen sind also weit entfernt von der die ganze
Tabelle betrachtenden HTML-Logik.

Da kann ich Dir nur beipflichten.

Ich bin überzeugt davon, dass es so etwas in LibO nicht gibt, und wenn,
dann wäre es eher in Writer zu suchen (und ggf. dann auch in Impress
(und Draw)) , denn das ist eine Anforderung, die hauptsächlich für
textlastige Tabellen interessant ist, und Calc ist ja doch primär ein
Werkzeug für zahlenlastige Tabellen, auch wenn es oft für andere Zwecke
hergenommen wird.

Das ist eben eine philosophische Frage.

Geschmeidige Skalierung, zum Beispiel die Anpassung an Bildschirmbreiten und Inhalte,
betrachte ich als ein fundamental modernes Merkmal für die Arbeit am Computer.
Starrheit passt zu Papier.

Auch HTML ist "seiten"-bezogen, was eine
Tabellenkalkulation vom Grundsatz her ja nicht ist.
Schön wäre es sicher, eine solche Funktion zu haben, aber man müsste
erst einmal einen Algorithmus haben, mit dem man die Zeilen- und
Spaltenhöhen bestimmt. Weiß denn jemand, wie das in HTML berechnet wird?

Ich weiß es nicht.

Dann bestünde eine Chance, dass jemand das als Makro (und vielleicht
sogar als Extension) zur Verfügung stellt.
Andreas: bist du überhaupt sicher, dass deine Beschreibung der
Anforderung: "geringste Gesamthöhe" zutrifft?

Präzise nachgemessen habe ich nicht. Vielleicht fließt auch viel mehr in den
Algorithmus ein.
Klar ist nur: Tabellen in HTML verhalten sich wunderbar geschmeidig.

Aber nehmen wir das einmal
an. Dann besteht immer noch das Problem, das auf Calc zu übertragen.
Denn dort wäre das zunächst einmal einfach die Funktion "optimale
Zeilenhöhe", was aber bedeutet, dass die Summe der Zellenbreiten sehr
groß werden könnte. Der springende Punkt ist, dass die Seitenbreite

Besser als Bezugspunkt als "Seite" wäre die Fensterbreite.

hinzukommt, die Anforderung, wenn sie denn korrekt ist, müsste zumindest
präzisiert werden: "geringste Gesamthöhe unter Berücksichtigung der
Seitenbreite" (die Tabellen ändern sich ja, wenn man das Fenster im
Browser verbreitert oder -schmälert), und das beißt sich dann schon mit
den Grundkonzepten von Calc.
Also: ich mache dir da keine Hoffnungen.

Da wirst Du wohl Recht haben. Aber einen Versuch der Nachfrage war es wert.

VG Andreas

Danke für die Info, Stefan.

Ich selber bin kein Entwickler. Ich wollte die Idee und das Anliegen hier nur
vorstellen und diskutieren.

VG Andreas

Stefan Deutsch:

Moin.

Klar, manuell konnte man schon immer in Tabellen die Funktionen "optimale Breite" und
"optimale Höhe" wählen.

Mich reizt ein Verhalten einer in der Entwicklung befindlichen Tabelle mit einem
smarten Verhalten wie eine Tabelle in HTML.

Dort wird bei gesetzter Gesamtbreite der Tabelle der Platz so geschickt

verteilt,

dass die geringste Gesamthöhe der Tabelle dabei herauskommt.

Das Problem ist allerdings, dass eine Calc-Tabelle grundsätzlich nur
eine Größe kennt, das ist die Anzahl der Zellen. Und die gehen
grundsätzlich von A1 bis AMJ1048576. Andere Größen, insbesondere eine
Größe "Fensterbreite" o.ä., gibt es nicht.

Das Hhöchste der Gefühle, das du in deinem Sinn ermitteln und ggf.
manipulieren kannst, ist, ob eine Zelle sichtbar (d.h. ein- oder
ausgeklappt) ist, und ob eine Zelle sich innerhalb oder außerhalb des
aktuell sichtbaren Ausschnittes befindet.

Gibt es vielleicht Makros, die was Ähnliches mit einer Calc-Tabelle hinkriegen?

Ich befürchte, nein.

Ich mochte es noch nie, manuell Spaltenbreiten und -höhen festzulegen.

Dann kann ich dir allerhöchstens noch eine automatische Anpassung der
Schriftgröße anbieten: "Format => Zellen => Ausrichtung => [X] An
Zellgröße anpassen". Funktioniert allerdings nur, wenn nicht "... =>
automatischer Zeilenumbruch" aktiviert ist.

Wolfgang