Excel-Tabellen in HTML konvertieren, Teil 2

Formatierung der Tabellenzellen in Excel ermitteln

Variablen-Typ für Zelleigenschaften

Für die interne Speicherung der Format-Informationen der einzelnen Tabellenzellen wird ein benutzerdefinierter Typ vereinbart. Das ermöglicht die kompakte Verarbeitung aller notwendigen Zelleigenschaften.

Hier der benutzerdefinierte Typ:

Funktion GetRangeFormatInfo(…)

Für die Ermittlung der Formateigenschaften der einzelnen Tabellenzellen wird die Funktion GetRangeFormatInfo benutzt.

nach oben⇑

Schriftstile ermitteln

In der vorliegenden Version des Makros werden nur die Schriftstile “fett” (rngRange.Font.Bold) und “kursiv” (rngRange.Font.Italic)  ausgewertet und als CSS-Eigenschaft eingefügt. Die Schriftstile werden in Excel im Datentyp Boolean gespeichert. Abhängig vom ausgewähltem Bereich kann es vorkommen das die beiden Werte undefiniert sind und den Wert Null liefern. Das muss bei der Wertzuweisung abgefangen werden.

nach oben⇑

Schriftgröße und Font ermitteln

Excel liefert die Zeichengröße in Punkten (Points). Der Bezugswert sind 72 Pixel/Inch. Im Makro erfolgt die Umrechnung mit einer Bildschirmauflösung von 96 Pixel/Inch. Für die Festlegung der Schriftgröße über font-size in Pixeln wird deshalb Round(usrFormatInfo.vFontSize * vScreenRes / 72) verwendet. vScreenRes ist 96 Pixel/Inch.

nach oben⇑

Spaltenbreite und Zeilenhöhe

Excel liefert die Spaltenbreite in Punkten in Width und die Zeilenhöhe in Punkten in Height. Die Umrechnung von Punkten in Pixel erfolgt auf gleiche Weise, wie zuvor bei der Schriftgröße.

nach oben⇑

Farben ermitteln

Um die Farben als echten Farbwert zu erhalten, der dann als RGB-Wert in CSS eingebunden werden kann, muss man die Eigenschaft Color auswerten. Für die Verwendung im Style-Sheet muss der Farbwert umgeformt werden. Das leistet die Funktion GetColorRGBdez.

nach oben⇑

Rahmenbreiten

Excel liefert Rahmenbreiten nicht in Pixeln oder Punkten, sondern hat fest definierten Breiten, die als VBA-Konstanten geliefert werden. Mit der Funktion GetPixelWidth werden entsprechende Werte in Pixeln fest zugewiesen.

Linienstile der Rahmen

Linienstile können nur mit Einschränkungen von Excel übernommen werde, da mit CSS weniger Varianten zur Verfügung stehen. Excel codiert die Linienstile über VBA-Konstanten. Die Funktion vGetLineStyle setzt die Werte in CSS-Eigenschaften um.

nach oben⇑

Das komplette Makro

Makro für HTML5

Das komplette Makro Excel2HTML5(usrHTML5-Tabellen-V0.3) gibt es hier.

Im Excel-VBA-Editor kann die Datei als Modul importiert werde. Vorsicht ist mit dem bTestFlag geboten. Wenn es auf TRUE gesetzt wird, werden Testausgaben ins aktive Tabellenblatt geschrieben. Das kann zur Zerstörung des Inhaltes führen.

nach oben⇑

Makro für (X)HTML

Das komplette Makro Exce2HTML (usrXHTMLTabellen-V0.3) gibt es hier.

Im Excel-VBA-Editor kann die Datei als Modul importiert werde. Vorsicht ist mit dem bTestFlag geboten. Wenn es auf TRUE gesetzt wird, werden Testausgaben ins aktive Tabellenblatt geschrieben. Das kann zur Zerstörung des Inhaltes führen.

Rahmen-Makro zum Aufruf in Excel

 

Optimierungen – Reduzierung der Zeichenzahl des HTML-Codes

CSS-Eigenschaften die sich auf Container bzw. Boxen beziehen und damit vier verschiedene Werte erhalten können, dürfen in CSS in verkürzter Schreibweise angegeben werden. Das gilt zum Beispiel für border, border-color, border-style, border-width, margin, padding etc. Bei der verkürzten Schreibweise werden die Eigenschaften vom Browser je nach Anzahl der Werte zugewiesen.

Es gilt:

  • Eine Angabe/Wert: für alle 4 Eigenschaften gilt derselbe Wert, die selbe Angabe
  • Zwei Angaben/Werte: 1. Wert für oben und unten, eigenschaft-top und eigenschaft-bottom, 2. Wert für links und rechts, eigenschaft-left und eigenschaft-right
  • Drei Angaben/Werte: 1. Wert für oben, eigenschaft-top, 2. Wert für links und rechts, eigenschaft-left und eigenschaft-right, 3. Wert für unten, eigenschaft-bottom
  • Vier Angaben/Werte: 1. Wert für oben, eigenschaft-top, 2. Wert für rechts, eigenschaft-right, 3. Wert für unten, eigenschaft-bottom, 4. Wert für links, eigenschaft-left

Die folgenden Funktionen prüfen die aus Excel ermittelten Eigenschaften und liefern jeweils eine Zeichenkette mit den notwendigen Angaben für die CSS-Eigenschaft.

Rahmenfarben in verkürzter Schreibweise

Rahmenbreiten in verkürzter Schreibweise

Rahmenstile in verkürzter Schreibweise

 

Zurück zu Teil 1.