Announcement

Collapse
No announcement yet.

Setzen des Defaultwertes bei Tabellen mit Apache POI SXSSF

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Setzen des Defaultwertes bei Tabellen mit Apache POI SXSSF

    Hi Leute,

    ich beschäftige mich gerade beruflich mit dem erstellen von Exceltabellen.
    Bislang wurden Daten aus einer Datenbank in eine Excel-Datei über das HSSF Paket von Apache POI.
    Ich arbeite gerade an der Implementierung, dass die Daten auch im Excelformat xlsx gespeichert werden können mit dem Paket SXSSF (einer Streaming-Variante des XSSF Pakets).

    Jedoch nutzen wir nicht die Defaultschriftart von Excel.
    Die Defaultschriftart konnte in HSSF ja leicht über workbook.getFontAt((short)0).setFontName("Tahoma") geändert werden, sodass die komplette Tabelle in der Schriftart Tahoma formatiert wird.

    Ich hab es auf diese Art bei SXSSF versucht. Formatiert Excel jede Zelle, die nicht explizit einen CellStyle erhalten hat, stur im Default Calibri.
    Interessant ist, dass eingegebene Formatierungen wie Italic oder die Schriftgröße übernommen werden.

    Weiß jemand eine andere Möglichkeit, die Defaultschriftart bei XSSF/SXSSF zu ändern oder muss ich echt jeder Zelle den Font explizit zuweisen.

    Gruß
    Erik

  • #2
    schon mal createFont ausprobiert
    Christian

    Comment


    • #3
      Das problem ist dann aber immer noch, wie ich ihm dann sagen soll, dass er dieses erzeugte Font als Default verwenden soll, damit die komplette Exceldatei im von mir gewünschten Format ausgegeben wird.

      Ich hab bei einer Testdatei über Create Font ein weiteres Font mit Schriftart Arial erzeugt und hab mir dann mal beide Fonts ausgeben lassen.
      Das Font an der Stelle 0 wird als Name Tahoma zurückgeben, an der Stelle 1 Arial. Trotzdem sind alle Zellen die nicht explizit formatiert wurden in Calibri.
      Kann es sein, dass die Workbookklasse in Verbindung mit dem Formatieren der Schriftart einen Fehler hat und diesen nicht ausführt.

      Comment


      • #4
        Weiter: workbook.createCellStyle() mal gesetzt? Ansonsten sehe ich auch keine Möglichkeit, dass zentral zu setzen
        Christian

        Comment


        • #5
          Hab ich auch schon versucht.

          Den einzigen Teilerfolg, den ich inzwischen hatte war, wenn ich beim Sheet das Stylesheet über setDefaultColumnStyle(int column, CellStyle style) eintrage.
          Ist aber auch nicht ganz optial, da ich da erstmal eine Schleife mit allen Spalten durchlaufen muss.

          Aber irgendwas scheint ja mit der setFontName des Workbooks oder einer Übergabe dazwischen nicht zu stimmen, da er ja alle anderen Fontbetreffenden Parameter auch übernimmt.

          Comment


          • #6
            Würde ich aus so sehen. Kannst dann aber nur prüfen,ob du die aktuelle Version hast.....
            Christian

            Comment

            Working...
            X