Learn how to convert XLS to XML and XML to XLS in VB.NET with this source code sample. ByteScout Spreadsheet SDK is the SDK to create, read, modify and calculate spreadsheets. Formula calculations are supported, import and export to and from JSON, CSV, XML, databases, arrays. It can be used to convert XLS to XML and XML to XLS using VB.NET.
You will save a lot of time on writing and testing code as you may just take the VB.NET code from ByteScout Spreadsheet SDK for convert XLS to XML and XML to XLS below and use it in your application. In order to implement the functionality, you should copy and paste this code for VB.NET below into your code editor with your app, compile and run your application. Detailed tutorials and documentation are available along with installed ByteScout Spreadsheet SDK if you’d like to dive deeper into the topic and the details of the API.
Our website provides trial version of ByteScout Spreadsheet SDK for free. It also includes documentation and source code samples.
On-demand (REST Web API) version:
Web API (on-demand version)
On-premise offline SDK for Windows:
60 Day Free Trial (on-premise)
Imports Bytescout.Spreadsheet
Imports System.IO
Module Module1
Sub Main()
' sample XLS to XML conversion
SampleXLStoXMLConversion()
' sample XML to XLS conversion
SampleXMLtoXLSConversion()
End Sub
''' <summary>
''' shows how to convert existing XLS (Excel) _document into XML using Bytescout.Spreadsheet and Bytescout.Spreadsheet.Utils.SimpleXMLConverter
''' </summary>
Sub SampleXLStoXMLConversion()
Dim document As New Spreadsheet()
document.LoadFromFile("AdvancedReport.xls")
' read XLS and save as XML
Dim tools As New SimpleXMLConverter(document)
tools.SaveXML("AdvancedReport.xml")
document.Close()
End Sub
''' <summary>
''' shows how to convert XML data into XLS excel using Bytescout.Spreadsheet and Bytescout.Spreadsheet.Utils.SimpleXMLConverter
''' </summary>
Sub SampleXMLtoXLSConversion()
' read XML and convert into XLS (Excel) and save
Dim document As New Spreadsheet()
Dim tools As New SimpleXMLConverter(document)
tools.LoadXML("AdvancedReport.xml")
' remove output file if already exists
If File.Exists("AdvancedReportFromXML.xls") Then
File.Delete("AdvancedReportFromXML.xls")
End If
document.SaveAs("AdvancedReportFromXML.xls")
document.Close()
' open in default spreadsheets viewer/editor
Process.Start("AdvancedReportFromXML.xls")
End Sub
End Module
60 Day Free Trial or Visit ByteScout Spreadsheet SDK Home Page
Explore ByteScout Spreadsheet SDK Documentation
Explore Samples
Sign Up for ByteScout Spreadsheet SDK Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
Imports Bytescout.Spreadsheet
Public Class SimpleXMLConverter
Dim _document As Spreadsheet
Sub New(ByRef document As Spreadsheet)
_document = document
End Sub
Sub LoadXML(ByVal path As String)
Dim dataSet As New DataSet()
dataSet.ReadXml(path)
For Each table As DataTable In dataSet.Tables
Dim worksheet As Worksheet = _document.Workbook.Worksheets.Add(table.TableName)
' Add columns
worksheet.Columns.Insert(0, table.Columns.Count)
' Add rows for data
worksheet.Rows.Insert(0, table.Rows.Count)
' Fill data
For i As Integer = 0 To table.Rows.Count - 1
For j As Integer = 0 To table.Columns.Count - 1
worksheet.Cell(i + 1, j).Value = table.Rows(i)(j).ToString()
Next
Next
Next
End Sub
Sub SaveXML(ByVal path As String)
Dim dataSet As New DataSet()
For i As Integer = 0 To _document.Workbook.Worksheets.Count - 1
Dim worksheet As Worksheet = _document.Workbook.Worksheets(i)
Dim table As DataTable = dataSet.Tables.Add(worksheet.Name)
For column As Integer = 0 To worksheet.UsedRangeColumnMax
table.Columns.Add(String.Format("Column_{0}", column))
Next
For row As Integer = 0 To worksheet.UsedRangeRowMax
Dim data() As Object
Array.Resize(data, worksheet.UsedRangeColumnMax + 1)
For column As Integer = 0 To worksheet.UsedRangeColumnMax
data(column) = worksheet.Cell(row, column).Value
Next
table.Rows.Add(data)
Next
Next
dataSet.WriteXml(path)
End Sub
Sub PrintDataSet(ByRef ds As DataSet)
Console.WriteLine("DataSet name: {0}", ds.DataSetName)
For Each table As DataTable In ds.Tables
Dim rowCount As Integer = table.Rows.Count
Dim columnCount As Integer = table.Columns.Count
Console.WriteLine("\nTable: {0} ({1} rows)", table.TableName, rowCount)
For Each column As DataColumn In table.Columns
Console.Write("{0}\t", column.ColumnName)
Next
Console.WriteLine()
For i As Integer = 0 To rowCount - 1
For column As Integer = 0 To columnCount - 1
Console.Write("{0}\t", table.Rows(i)(column))
Next
Console.WriteLine()
Next
Next
End Sub
End Class
60 Day Free Trial or Visit ByteScout Spreadsheet SDK Home Page
Explore ByteScout Spreadsheet SDK Documentation
Explore Samples
Sign Up for ByteScout Spreadsheet SDK Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
60 Day Free Trial or Visit ByteScout Spreadsheet SDK Home Page
Explore ByteScout Spreadsheet SDK Documentation
Explore Samples
Sign Up for ByteScout Spreadsheet SDK Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
also available as: