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.
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
Hi Pam,
Never mind 😉
Did you include the library from the download ?
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
Alguien tiene un manual, tutorial de R6.5, o que Libro del lotus r6.5 me recomiendan?
Great code but how can we do for generate Excel 2003 worksheet?