0

good day..
i have a slight problem in my enrolment sytem.
im new in vb programming, and this problem perfectly work in
stressing out and pressuring me as begginer.

i have a listbox that contains all filtered data from my database.
and i want it (all entry in the filtered listbox) to be exported to ms excel. i tried searching on different forums
but it doesnt resolved my problem. im using visual studio 2012 by the way.
can somebody could run me through this problem?

2
Contributors
3
Replies
9
Views
3 Years
Discussion Span
Last Post by riudo
0

Here's an example that I wrote up that uses a listview. It should be easy to modify it to iterate through a ListBox

Imports Microsoft.Office.Interop
Imports System.Windows.Forms

'                                                                                       
'  Name:                                                                                
'                                                                                       
'    ExcelExportListView                                                                
'                                                                                       
'  Description:                                                                         
'                                                                                       
'    Sample code to show how to open and manipulate an Excel spreadsheet from within a  
'    VB application.                                                                    
'                                                                                       
'  Notes:                                                                               
'                                                                                       
'    It is very important to not reference objects directly through other objects. This 
'    is often referred to as the double-dot restriction. For example, when you create   
'    a local variable to refer to the active worksheet, first create a local variable   
'    to refer to the active workbook, then generate the worksheet reference through     
'    that variable. That is do                                                          
'                                                                                       
'       Dim book As Excel.Workbook = xls.ActiveWorkbook                                 
'       Dim sheet As Excel.Worksheet = book.ActiveSheet                                 
'                                                                                       
'    rather than                                                                        
'                                                                                       
'       Dim sheet As ExcelWorksheet = xls.ActiveWorkbook.ActiveSheet                    
'                                                                                       
'    If you do the latter then you will end up with one orphan Excel.exe task for each  
'    time you run the application.                                                      
'                                                                                       
'  Audit:                                                                               
'                                                                                       
'    2013-06-20  rj  original code                                                      
'                                                                                       

Public Class Form1

    Private Sub btnPopulate_Click(sender As System.Object, e As System.EventArgs) Handles btnPopulate.Click

        'Add a few test items to the listview

        lvwToExport.Items.Add(New ListViewItem({"one", "two", "three"}))
        lvwToExport.Items.Add(New ListViewItem({"four", "five", "six"}))
        lvwToExport.Items.Add(New ListViewItem({"seven", "eight", "nine"}))
        lvwToExport.Items.Add(New ListViewItem({"ten", "eleven", "twelve"}))
        lvwToExport.Items.Add(New ListViewItem({"thirteen", "fourteen", "fifteen"}))

    End Sub

    Private Sub btnExport_Click(sender As System.Object, e As System.EventArgs) Handles btnExport.Click

        'Export the listview to an Excel spreadsheet

        SaveFileDialog1.Title = "Save Excel File"
        SaveFileDialog1.Filter = "Excel files (*.xls)|*.xls|Excel Files (*.xlsx)|*.xslx"
        SaveFileDialog1.ShowDialog()

        'exit if no file selected

        If SaveFileDialog1.FileName = "" Then
            Exit Sub
        End If

        'create objects to interface to Excel

        Dim xls As New Excel.Application
        Dim book As Excel.Workbook
        Dim sheet As Excel.Worksheet

        'create a workbook and get reference to first worksheet

        xls.Workbooks.Add()
        book = xls.ActiveWorkbook
        sheet = book.ActiveSheet

        'step through rows and columns and copy data to worksheet

        Dim row As Integer = 1
        Dim col As Integer = 1

        For Each item As ListViewItem In lvwToExport.Items
            For i As Integer = 0 To item.SubItems.Count - 1
                sheet.Cells(row, col) = item.SubItems(i).Text
                col = col + 1
            Next
            row += 1
            col = 1
        Next

        'save the workbook and clean up

        book.SaveAs(SaveFileDialog1.FileName)
        xls.Workbooks.Close()
        xls.Quit()

        releaseObject(sheet)
        releaseObject(book)
        releaseObject(xls)

    End Sub

    Private Sub releaseObject(ByVal obj As Object)

        'Release an automation object

        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            obj = Nothing
        Catch ex As Exception
            obj = Nothing
        Finally
            GC.Collect()
        End Try

    End Sub

End Class
0

thank you for the reply.. im working it now base on your sample.. :)

0

For Each item As ListViewItem In lvwToExport.Items

            For i As Integer = 0 To item.SubItems.Count - 1


            sheet.Cells(row, col) = item.SubItems(i).Text
            col = col + 1
        Next
        row += 1
        col = 1
    Next

i got an error in this line.. sheet.Cells(row,col) <---- expression is a value and therefore cannot be the target of an assignment..

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.