Convert XLS to XML and XML to XLS - VB.NET
Spreadsheet SDK sample in VB.NET demonstrating ‘Convert XLS to XML and XML to XLS’
Module1.vb
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
SimpleXMLConverter.vb
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
Resources.Designer.vb
��' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
 
 '   <