Startseite

VBS - Wshell




Impressum

VBS - CSV zu HTML


Im Auftrag eines langjährigen Browsergames Alliierten, die Aufgabenstellung war sehr simple: Kann man aus Excel HTML exportieren?
Excel bietet zwar einen Webseitenexport an, aber dieser war nicht angenehm und ist auch in meinen Augen für schnellen und einfachen Einbau in Webseiten nicht optimal, daher der Entschluss über CSV zu HTML zu wandeln, dabei gibt es 2 Dateien, eine Formatdatei und eine Inputdatei.
Die Formatdatei setzt das Format vor, das für die einzelnen Spalten verwendet werden soll, dabei wird auf VB.Net verzichtet und WShell verwendet. Dadurch kann man das Script jederzeit ohne Compiler bearbeiten und direkt ausführen. (Unter Windows).

Direkt zum Download mit Beispieldateien ;)
Beispiel Unten: (Spitzklammern gegen {} getauscht wegen HTML)

Dim fso,Zeile,Spalte,i,wshell,j,k
Dim htmlOben, htmlUnten, DateiInput, DateiFormat, DateiOutput
Dim DateiInputInhalt, DateiFormatInhalt, DateiOutputInhalt
Dim DateiInputInhaltSplitvbcrlf, DateiFormatInhaltSplitSemi,DateiInputInhaltSplitSemi

htmlOben = "{!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01//EN""}" & vbcrlf & "{html}" & vbcrlf & "{head}" & _
				vbcrlf & "{title}Lamda-T.de_-_CSV_to_HTML{/title}" & vbcrlf & "{/head}" & vbcrlf & "{body}" & _
				vbcrlf & "{table width=""100%""}" & vbcrlf & "{tbody}"
htmlUnten = "{/tbody}" & vbcrlf & "{/table}" & vbcrlf & "{/body}" & vbcrlf & "{/html}"

DateiInput = "DateiInput.csv"
DateiFormat = "DateiFormat.csv"
DateiOutput = "DateiOutput.html"

on error resume next 

set fso = CreateObject("Scripting.FileSystemObject")

if fso.fileExists(DateiInput) and fso.fileExists(DateiFormat) then
	set DateiPuffer = fso.opentextfile(DateiFormat)
	DateiFormatInhalt = DateiPuffer.readall
	DateiPuffer.close
	DateiFormatInhaltSplitSemi = Split(DateiFormatInhalt, ";")
	
	set DateiPuffer = fso.opentextfile(DateiInput)
	DateiInputInhalt = DateiPuffer.readall
	DateiPuffer.close
	
	DateiInputInhaltSplitvbcrlf = Split(DateiInputInhalt, Chr(10))
	
	DateiOutputInhalt = htmlOben & vbcrlf
	for j = 0 to Ubound(DateiInputInhaltSplitvbcrlf)
	
		DateiInputInhaltSplitSemi = Split(DateiInputInhaltSplitvbcrlf(j), ";")
		i = 0
		DateiOutputInhalt = DateiOutputInhalt & "{tr}"
		for k = 0 to Ubound(DateiFormatInhaltSplitSemi)
			DateiOutputInhalt = DateiOutputInhalt & "{td}"
			DateiOutputInhalt = DateiOutputInhalt &_
			Replace(DateiFormatInhaltSplitSemi(k),"[X]",DateiInputInhaltSplitSemi(i))
			i=i+1
			DateiOutputInhalt = DateiOutputInhalt & "{/td}"
		next 
		DateiOutputInhalt = DateiOutputInhalt & "{/tr}" & vbcrlf
	next 
	DateiOutputInhalt = DateiOutputInhalt & htmlUnten
	
	set DateiPuffer =fso.opentextfile(DateiOutput, 2, true,0)
	DateiPuffer.writeline DateiOutputInhalt
	DateiPuffer.close
	
	set wshell = CreateObject("Wscript.shell")
	wshell.run DateiOutput
		
	set wshell = Nothing
	set DateiPuffer = Nothing
else
	msgbox("Dateien sind unvollständig")
end if

set fso = Nothing

Der Quellcode ist relativ einfach, viel Spass bei der Verwendung ;)