Skip to main content Skip to footer

Importing HTML tables to VSFlexGrid

This blog deals with loading of HTML tables into VSFlexGrid. Currently we have LoadGrid method which loads grid from a file previously saved comma-delimited text file (CSV format) such as an Excel text file, or a tab-delimited text file saved using the SaveGrid method. To load HTML table directly, we need to parse the HTML into a delimited text file and use LoadGrid to add it. Following code showcases the same, on Form _Load event:

' Load some HTML Text  
 Me.Text1.Text = "<table>" & _  
 "<thead>" & _  
 "<tr>" & _  
 "<th>Header 1</th>" & _  
 "<th>Header 2</th>" & _  
 "</tr>" & _  
 "<tbody>" & _  
 "<tr>" & _  
 "<td>R1C1</td>" & _  
 "<td>R1C2</td>" & _  
 "</tr>" & _  
 "<tr>" & _  
 "<td>R2C1</td>" & _  
 "<td>R2C2</td>" & _  
 "</tr>" & _  
 "</tbody>" & _  
 "</table>"

To parse the html, we will create a ParseHTML() method which will parse this string into a CSV file.

Private Sub ParseHTML(htmlText As String)  
    ' Use VSFlexString to parse out the HTML  
    ' and create comma delimited text  
    With Me.VSFlexString1  
       .Text = htmlText  
       .Pattern = "</tr>"  
       .Replace = "\\r\\n"  
       .Pattern = "</th>"  
       .Replace = ","  
       .Pattern = "</td>"  
       .Replace = ","  
       .Pattern = "<[^>]*>"  
       .Replace = ""  
       .Pattern = ",\\r\\n"  
       .Replace = "\\r\\n"  
    End With  
End Sub

Now, we will use the LoadGrid method of VsFlexGrid and import the table into the grid :

Private Sub Command1_Click()  
    Dim mytext  
    mytext = FreeFile  

    ' Convert HTML to comma delimited text  
    ParseHTML Me.Text1.Text  
    Me.Text1.Text = Me.VSFlexString1.Text  

    ' Save the text to a .csv  
    Open App.Path & "\\text.csv" For Output As #mytext  
       Print #mytext, Me.Text1.Text  
    Close mytext  

   ' Load the .csv into the grid.  
    Me.VSFlexGrid1.LoadGrid App.Path & "\\text.csv", flexFileCommaText  
End Sub

Please refer to the attached sample for complete implementation. Download Sample

MESCIUS inc.

comments powered by Disqus