Excel Datei ohne Excel erstellen
September 12, 2005 – 9:44 amProgramme 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 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.





5 Responses to “Excel Datei ohne Excel erstellen”
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
By pamela miller on Nov 29, 2005
Hi Pam,
Never mind
Did you include the library from the download ?
By Administrator on Nov 30, 2005
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
By Björn Lange on Jan 17, 2006
Alguien tiene un manual, tutorial de R6.5, o que Libro del lotus r6.5 me recomiendan?
By Carolina on May 31, 2006
Great code but how can we do for generate Excel 2003 worksheet?
By PFD on Aug 9, 2006