Suchergebnisse
Suchergebnisse 1-11 von insgesamt 11.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
-
Faktor soll umso kleiner werden, desto größer ein anderer Wert ist, aber nicht linear (Excel-Spaltenbreite bestimmen)
Marcus Gräfe - - Weitere Sprachen und sprachübergreifende Themen
BeitragMeine Frage lässt sich sicher allgemein beantworten, ist aber im konkreten Fall für PHP. Zum Hintergrund: Ich erstelle mit einer Library eine Excel-Datei und möchte im Anschluss die Spaltenbreiten auf das Optimum setzen (ein echtes Autosize gibt es dort nicht). Zunächst ermittle ich dafür mittels mb_strwidth die maximale Wortlänge. Das ist schon recht gut im Ergebnis. Nun ist mir aber aufgefallen, dass je länger ein Wort ist, desto mehr Freiraum habe ich am Ende einer Tabellenzelle. Beispiel: Wo…
-
Faktor soll umso kleiner werden, desto größer ein anderer Wert ist, aber nicht linear (Excel-Spaltenbreite bestimmen)
Marcus Gräfe - - Weitere Sprachen und sprachübergreifende Themen
Beitrag@VaporiZed Evtl. habe ich das falsche Wort benutzt, aber für mich ist das linear: PHP-Quellcode (5 Zeilen) Ergibt: Quellcode (10 Zeilen) Statt der 101 sollte da aber eher sowas wie 80 stehen. Die Kurve sollte also abflachen. EDIT: D. h. der Faktor soll, wie ich nun feststelle, gar nicht immer mind. 1 sein. Habe das im Titel weggemacht. Vielleicht ist "linear" gar nicht mein Problem. Ich habe diesen Post nun schon so oft editiert, weil ich mittlerweile selbst verwirrt bin, was nun eigentlich mein…
-
Faktor soll umso kleiner werden, desto größer ein anderer Wert ist, aber nicht linear (Excel-Spaltenbreite bestimmen)
Marcus Gräfe - - Weitere Sprachen und sprachübergreifende Themen
BeitragDanke euch für die Tipps. Ich werde in der kommenden Woche mal schauen, wie ich es letztendlich mache. Ich denke, jetzt müsste ich hinbekommen, was ich vorhabe. Ich habe meine Zahlen und die von @VaporiZed mal visualisiert (siehe Anhang). Da sieht man dann auch, warum ich von "linear" schrieb. Zitat von nafets: „weil die bei ganz langen Zeilen dann wieder gegen 0 geht“ Es gibt allerdings in meinem Fall ein Maximum von 243 Zeichen und ein Minimum von 3 Zeichen. Daher könnte das evtl. doch klappen…
-
Faktor soll umso kleiner werden, desto größer ein anderer Wert ist, aber nicht linear (Excel-Spaltenbreite bestimmen)
Marcus Gräfe - - Weitere Sprachen und sprachübergreifende Themen
Beitrag@PadreSperanza Danke, schaue ich mir an. @Fakiz Vmtl. macht die Funktion nicht viel mehr als die in PHP eingebaute Funktion imagettfbbox (siehe Post #3).
-
Faktor soll umso kleiner werden, desto größer ein anderer Wert ist, aber nicht linear (Excel-Spaltenbreite bestimmen)
Marcus Gräfe - - Weitere Sprachen und sprachübergreifende Themen
BeitragZitat von Fakiz: „Ohne Debug Connection benötigt imagettfbbox 10,24 sek. und die FPDF Variante 160 ms.“ Das klingt in der Tat nicht schlecht. Werde das in der kommenden Woche auf jeden Fall testen! Wenn's in meinem Fall auch schnell arbeitet, dann wäre das die bessere Alternative zu irgendwelchen Kurvenformeln.
-
Faktor soll umso kleiner werden, desto größer ein anderer Wert ist, aber nicht linear (Excel-Spaltenbreite bestimmen)
Marcus Gräfe - - Weitere Sprachen und sprachübergreifende Themen
BeitragDie ganze Geschichte ist wirklich recht kompliziert. Ich glaube, egal was man macht, man kommt nicht an das ran, was Excel macht, wenn man dort die automatische Breite bestimmen lässt. Es ist so, dass Excel die Breite 10 (es gibt keine Einheit) als die Breite von 5x "0" (Null) mit der Schriftart Calibri, Größe 11 definiert. Daher ist es schwierig, bei beliebigen Strings den exakten Excel-Wert zu bestimmen. Ich denke, man kann sich maximal annähern. Mit dem von @Fakiz geposteten Code komme ich an…
-
Faktor soll umso kleiner werden, desto größer ein anderer Wert ist, aber nicht linear (Excel-Spaltenbreite bestimmen)
Marcus Gräfe - - Weitere Sprachen und sprachübergreifende Themen
Beitrag@Fakiz Das mit Calibri war klar, habe ich ja auch so gemacht, siehe meinen Code-Kommentar weiter oben: MakeFont('C:\\Windows\\Fonts\\calibri.ttf','cp1252');. @ISliceUrPanties imagettfbbox mit dem längsten String geht nicht, weil der längste String nicht der längste String ist. "iiiiiiiiii" (10 Zeichen) ist kürzer als "OOOOOO" (6 Zeichen).
-
Faktor soll umso kleiner werden, desto größer ein anderer Wert ist, aber nicht linear (Excel-Spaltenbreite bestimmen)
Marcus Gräfe - - Weitere Sprachen und sprachübergreifende Themen
Beitrag@Fakiz Ich kann deinen Post leider nicht so ganz deuten. Klar ist $fontsize ein Integer. Und die Größe des Fonts ist in "pt" (also Points). Die Rechnung $w * $fontSize / 1000 stammt 1:1 von FPDF. Meiner Meinung nach ist das die Breite des Strings in Pixeln. Und den muss ich natürlich in die Excel-Breite umrechnen, was ich derzeit durch das / 4.5 mache. @PadreSperanza Das bringt mir ja nichts, denn ich brauche doch die Breite bei der gewählten Schriftart. Ich muss allerdings für jeden String die …
-
Faktor soll umso kleiner werden, desto größer ein anderer Wert ist, aber nicht linear (Excel-Spaltenbreite bestimmen)
Marcus Gräfe - - Weitere Sprachen und sprachübergreifende Themen
Beitrag@Acr0most Auf die Idee mit den 2 Schritten bin ich natürlich auch gekommen. Leider ist es meines Wissens nach mit sämtlichen verfügbaren Excel-Libaries für PHP unmöglich, eine Datei zu bearbeiten. Es geht nur Lesen oder Schreiben.
-
Faktor soll umso kleiner werden, desto größer ein anderer Wert ist, aber nicht linear (Excel-Spaltenbreite bestimmen)
Marcus Gräfe - - Weitere Sprachen und sprachübergreifende Themen
BeitragIch habe derzeit noch zwei Ansätze, die ich gerne versuchen würde (beide sind nicht mathematisch). Hatte aber leider noch keine Zeit dazu, daher hier noch keine Rückmeldung. Sobald ich das getestet habe, melde ich mich mit den Ergebnissen. Eine nichtproportionale Schriftart (Monospace) kommt übrigens hier nicht in Frage.
-
Faktor soll umso kleiner werden, desto größer ein anderer Wert ist, aber nicht linear (Excel-Spaltenbreite bestimmen)
Marcus Gräfe - - Weitere Sprachen und sprachübergreifende Themen
BeitragUm das hier nun mal endlich abzuschließen, das hier ist meine finale Änderung (falls es jemanden interessiert ) : 1.) Ich ermittle nun die echte Breite jedes Strings (Zellenwert). Vorher hatte ich zunächst den von der Zeichenanzahl her längsten String ermittelt und nur davon die echte Breite. 2.) Ich berücksichtige nun auch den Schriftgrad "fett" und habe nochmal an meiner Formel geschraubt. Folgender Code kommt ganz gut an die automatische Spaltenbreitenbestimmung von Excel dran (gut genug auf …