Excel Datei ohne Excel erstellen

Programme zum Exportieren von Daten aus einer Lotus Notes Anwendung heraus gibt es viele. Alle diese Programme setzen voraus, daÃ? Excel auf dem Rechner, der die Exportdatei erzeugt auch installiert ist. Was macht man aber, wenn auf dem Rechner Excel nicht installiert ist oder der Export gar auf einem Server im Hintergrund laufen soll ? Was wenn die erzeugte Datei evtl. auch noch von älteren Versionen gelesen werden soll ?
Ein Format, welches Excel schon seit der Version 2.1 verwendet und welches auch noch mit Excel 2003 gelesen und verarbeitet werden kann ist BIFF2.1 ( Binary File Format )


Hier nun eine Klasse, die es ermöglicht, Daten aus einer Notes Datenbank direkt im Format BIFF2.1 zu speichern.
Der Originalcode stammt von Paul Squires aus dem Jahre 2001 und wurde ursprünglich für Visual Basic entwickelt. Ich habe lediglich Visual Basic spezifische Elemente so angepasst, daÃ? der Code auch unter Lotus Notes benutzt werden kann. ( Getestet habe ich mit der Clientversion 6.5.4 deutsch ).

Die Methoden und Eigenschaften der Klasse sollten ausreichen, um einfachen Anforderungen zu genügen. Daten können als Text, Integer oder Number exportiert werden. Durch die Verwendung von Standardformaten können diese Daten entsprechend formatiert ausgegeben werden.
Es besteht die Möglichkeit, verschiedene Schriftarten und Grössen zu verwenden, ebenso wie die Möglichkeit jede Zelle individuell mit einen Rahmen zu versehen.
Bein Ausdruck kann dieser mit einer Kopf- und Fusszeile versehen werden; MARGIN – Befehle erlauben die Positionierung des Ausdrucks auf dem Papier. Ein weiterer Befehl blendet die Gitterlinien beim Ausdruck ein.

Sub Click(Source As Button)

    Dim OK As Integer
    Dim retVal As Integer
    Dim ExcelWb As New ExcelFile
    OK = ExcelWb.CreateFile ( â??c: \test.xlsâ?)

%REM
    â??it is a good idea to set margins, fonts and column widths
    â??prior to writing any text/numerics to the spreadsheet. These
    â??should come before setting the fonts.
     â??set a default row height for the entire spreadsheet (1/20th of a point)
%END REM

    OK = ExcelWB.SetDefaultRowHeight (14)

    OK = ExcelWB.SetMargin (MARGIN_TOP, 1)   â??set to 1 inches
    OK = ExcelWB.SetMargin (MARGIN_LEFT, 1 )
    OK = ExcelWB.SetMargin (MARGIN_RIGHT, 1 )
    OK = ExcelWB.SetMargin (MARGIN_BOTTOM, 1 )

    OK = ExcelWB.SetHeader(â??Dies ist eine Hallo Welt Tabelleâ?) â??â??Header (visible when printing )
    OK = ExcelWB.SetFooter(â??hier kommt der Footerâ?) â??â??Footer (visible when printing )

 %REM
    â?? Up to 4 fonts can be specified for the spreadsheet. This is a
    â?? limitation of the Excel 2.1 format. For each value written to the
    â?? spreadsheet you can specify which font to use.
%END REM

    OK = ExcelWB.SetFont(â??Arialâ?, 10,  FORMAT_NONE) â??FONT_0 ( DEFAULT font for grid labels )
    OK = ExcelWB.SetFont(â??Verdanaâ?, 8,  FORMAT_BOLD) â??â??FONT_1
    OK = ExcelWB.SetFont(â??Verdanaâ?, 9,  FORMAT_ITALIC) â??FONT_2
    OK = ExcelWB.SetFont(â??Verdanaâ?, 10,  FORMAT_UNDERLINE + FORMAT_BOLD) â??FONT_3

    Call ExcelWB.PrintGridLines (True)

%REM
    â??PROTECT the spreadsheet so any cells specified as LOCKED will not be
    â??overwritten. Also, all cells with HIDDEN set will hide their formulae.
    â??PROTECT does not use a password.
    â??Call ExcelWb.ProtectSpreadsheet (True)
%END REM

    OK = ExcelWb.WriteValue( TYPE_LABEL,  FONT_0,  CELL_ALIGN_CENTER, CELL_NORMAL, 1, 1, â??Xâ?,  0 )
    OK = ExcelWb.WriteValue( TYPE_NUMBER,  FONT_0,  CELL_ALIGN_LEFT, CELL_NORMAL, 2, 1, â??-123456789â?³,  6 )
    OK = ExcelWb.WriteValue( TYPE_INTEGER,  FONT_2,  CELL_ALIGN_RIGHT, CELL_NORMAL, 3, 1, â??26789â?³,  1 )
    OK = ExcelWb.WriteValue( TYPE_LABEL,  FONT_3,  CELL_FILL, CELL_NORMAL, 6, 1, â??Xâ?,  0 )
    OK = ExcelWb.WriteValue( TYPE_LABEL,  FONT_0,  CELL_NORMAL, CELL_LOCKED, 8, 1, â??THIS cell is lockedâ?,  0 )
    OK = ExcelWb.CloseFile ()

End Sub

Wer es moderner mag kann sich auch gerne einmal das BIFF8 Format ansehen. Auch hierzu gibt es Visual Basic Code, der nach LS portiert werden kann. Eine weitere Möglichkeit zur Verwendung mit Excel 2003 ist die CarlosAg Excel Xml Writer Library.

DOWNLOAD

5 thoughts on “Excel Datei ohne Excel erstellen

  1. Hi,
    (sorry I do not speak German) .
    Dim ExcelWb As New ExcelFile. I get “Class or Type Name not found ExcelFile”. I am using Excel 2003 and Lotus 6.0.3. Any help would be appreciated.

    Great work!
    Pam

  2. Hallo!

    Super Script!!!
    Hat mir viel Arbeit erspart und macht bestimmt eine Menge Leute glücklich, die sonst Textdateien in Excel konvertrieren müssten.

    Dicker Dank!
    Björn

Comments are closed.