WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Samples from Users
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus
plus

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

CSV to HTML Table


Question:

Can anyone provide me with a link to how to display CSV file data in an HTML Table?

Answer:

Here's a simple UDF to display an HTML table...adjust to your tastes...

;   sample CSV file...

;   DATE,TIME,LOCATION
;   2/8/2004,10AM,Main Conference Room
;   2/9/2004,11AM,Backup Conference Room
;   2/12/2004,3PM,Lunch Room

;   Winbatch 2004F and MSIE 6.0

#DefineFunction BuildHTMLTablefromCSV(csvfilename, header, caption)
   Terminate(!FileExist(csvfilename), "HTML Table Builder", "File not found...terminating")
   csv = FileGet(csvfilename)
   csv = StrReplace(csv, @CRLF, @LF)
   HTMLTable = StrCat(`<table border=1 cellpadding=3 style="BORDER-COLLAPSE: collapse; border-color: powderblue;">`, @CRLF)
   If caption <> "" Then HTMLTable = StrCat(HTMLTable, `<caption>`, caption, `</caption>`, @CRLF)
   If header
      hdrtxt = ItemExtract(1, csv, @LF)
      HTMLTable = StrCat(HTMLTable, `<thead><tr align=center bgcolor=yellow>`, @CRLF)
      For x = 1 To ItemCount(hdrtxt, ",")
         thisHead = ItemExtract(x, hdrtxt, ",")
         HTMLTable = StrCat(HTMLTable, `<td>`, thisHead, `</td>`)
      Next
      HTMLTable = StrCat(HTMLTable, `</tr></thead>`, @CRLF)
      row = 2
   Else
      row = 1
   EndIf
   
   For x = row To ItemCount(csv, @LF)
      HTMLTable = StrCat(HTMLTable, `<tr>`)
      thisdata  = ItemExtract(x, csv, @LF)
      For y = 1 To ItemCount(thisdata, ",")
         thiscell = ItemExtract(y, thisdata, ",")
         HTMLTable = StrCat(HTMLTable, `<td>`, thiscell, `</td>`)
      Next
      HTMLTable = StrCat(HTMLTable, `</tr>`, @CRLF)
   Next
   HTMLTable = StrCat(HTMLTable,"</table>")
   Return(HTMLTable)
#EndFunction

#DefineSubRoutine startMSIE()
   Browser = ObjectOpen("InternetExplorer.Application")
   Browser.addressbar = @FALSE
   Browser.statusbar = @FALSE
   Browser.menubar = @FALSE
   Browser.toolbar = @FALSE
;   Browser.fullscreen = @true
   browser.visible = @TRUE
   url = "about:blank"
   browser.navigate(url)
   WaitForPageLoad()
   ;   setup the document object...
   browserDoc = Browser.Document
   all = browserdoc.all
   Return(browser)
#EndSubRoutine

#DefineSubroutine WaitForPageLoad()  ; assume Browser
   While browser.busy || browser.readystate == 1
      TimeDelay(0.5)
   EndWhile
   While browser.Document.ReadyState != "complete"
      TimeDelay(0.5)
   EndWhile
   return
#EndSubroutine

;   set up what to do if the browser is closed before the script ends...
;IntControl(73, 1, 0, 0, 0)

br = startMSIE()

csvHTML = BuildHTMLTablefromCSV("C:\Test\xml3\csv test.csv", @TRUE, "Meeting Schedule")

browserdoc.writeln(csvHTML)

Exit


The previous script is probably better - this one uses the Jet OLEDB Provider and a neat trick with GetString() to handle missing values. TEXT2HTML.WBT

; Winbatch - csv/text to HTML
; use Jet Provider and GetString

table = "bell"
ext = "txt"
path = dirget()
If ! FileExist(strcat(table,".",ext)) Then exit

file  = strcat(dirget(),"bell.htm")
BoxOpen("Creating HTML From Text",file)
cConn = "Provider=MicroSoft.Jet.OLEDB.4.0; Data Source=%path%;Extended Properties=Text;"
DB    = ObjectOpen("ADODB.Connection")
RS    = ObjectOpen("ADODB.Recordset")

DB.Open(cConn)
RS.Open("%table%#%ext%",DB,1,3,2)
r    = RS.GetString(,-1,"</TD><TD>","</TD></TR><TR><TD>","N/A" )
RS.Close()
ObjectClose( RS )
DB.Close()
ObjectClose(DB)

s    = ""
s    =Strcat(s,"<html>",@CRLF)
s    =Strcat(s,"",@CRLF)
s    =Strcat(s,"<head>",@CRLF)
s    =Strcat(s,"<title>WinBatch GetString/HTML Demo</title>",@CRLF)
s    =Strcat(s,"</head>",@CRLF)
s    =Strcat(s,"",@CRLF)
s    =Strcat(s,"<body>",@CRLF)
s    =Strcat(s,"<H2><B>Bellsouth OCN's...</B></H2>",@CRLF)
s    =Strcat(s,"<TABLE BORDER=1><TR><TD>")
s    =Strcat(s,r,@CRLF)
s    =Strcat(s,"</TD></TR></TABLE>")
s    =Strcat(s,"</body>",@CRLF)
s    =Strcat(s,"</html>",@CRLF)

FilePut(file,s)
BoxShut()
Message("File Created",file)
Exit


BELL.TXT

"G022","BELLSOUTH MOBILITY","2366 MARIETTA ROAD","ATLANTA","GA","303181229","WIRELESS"
"G053","BELLSOUTH BILLING, INC.","NOT RECOGNIZED","","","","GENERAL"
"SN04","BELLSOUTH","8 CORPORATE PLACE","PISCATAWAY","NJ","08854","RBOC"
"2582","BELLSOUTH BSE, INC.","2727 PACES FERRY ROAD","ATLANTA","GA","30339","CLEC"
"2583","BELLSOUTH BSE, INC. - TX","2727 PACES FERRY ROAD","ATLANTA","GA","30339","CLEC"
"2741","BELLSOUTH TELECOMMUNICATIONS, INC.","675W PEACHTREE ST NE","ATLANTA","GA","30375","CLEC"
"2742","BELLSOUTH TELECOMMUNICATIONS, INC.","675W PEACHTREE ST NE","ATLANTA","GA","30375","CLEC"
"2743","BELLSOUTH TELECOMMUNICATIONS, INC.","675W PEACHTREE ST NE","ATLANTA","GA","30375","CLEC"
"4384","BELLSOUTH BSE, INC. - FL","2727 PACES FERRY ROAD","ATLANTA","GA","30339","CLEC"
"5181","BELLSOUTH TELECOMM INC - AL","675W PEACHTREE ST NE","ATLANTA","GA","30375","RBOC"
"5182","BELLSOUTH TELECOMM INC - KY","675W PEACHTREE ST NE","ATLANTA","GA","30375","RBOC"
"5183","BELLSOUTH TELECOMM INC - LA","675W PEACHTREE ST NE","ATLANTA","GA","30375","RBOC"
"5184","BELLSOUTH TELECOMM INC - MS","675W PEACHTREE ST NE","ATLANTA","GA","30375","RBOC"
"5185","BELLSOUTH TELECOMM INC - TN","675W PEACHTREE ST NE","ATLANTA","GA","30375","RBOC"
"5191","BELLSOUTH TELECOMM INC - FL","675W PEACHTREE ST NE","ATLANTA","GA","30375","RBOC"
"5192","BELLSOUTH TELECOMM INC - GA","675W PEACHTREE ST NE","ATLANTA","GA","30375","RBOC"
"5193","BELLSOUTH TELECOMM INC - NC","675W PEACHTREE ST NE","ATLANTA","GA","30375","RBOC"
"5194","BELLSOUTH TELECOMM INC - SC","675W PEACHTREE ST NE","ATLANTA","GA","30375","RBOC"
"5778","BELLSOUTH TELECOMMUNICATIONS, INC.","675W PEACHTREE ST NE","ATLANTA","GA","30375","CLEC"
"6699","BELLSOUTH PERSONAL COMMUNICATIONS,","5600 GLENRIDGE DRIVE","ATLANTA","GA","303261357","WIRELESS"
"6948","BELLSOUTH WIRELESS, INC.","5600 GLENRIDGE DRIVE","ATLANTA","GA","30342","PCS"
"7533","BELLSOUTH TELECOMMUNICATIONS, INC.","675W PEACHTREE ST NE","ATLANTA","GA","30375","CLEC"
"8394","BELLSOUTH BSE, INC.","2727 PACES FERRY ROAD","ATLANTA","GA","30339","L RESELLER"
"9400","BELLSOUTH TELECOMMUNICATIONS, INC.","675W PEACHTREE ST NE","ATLANTA","GA","30375","GENERAL"
"9417","BELLSOUTH TELECOMM INC DBA","675W PEACHTREE ST NE","ATLANTA","GA","30375","RBOC"
"9419","BELLSOUTH TELECOMM INC DBA","675W PEACHTREE ST NE","ATLANTA","GA","30375","RBOC"

Article ID:   W16183
File Created: 2004:08:02:11:17:08
Last Updated: 2004:08:02:11:17:08