我正在设置一个程序,并希望将我的listview项目保存到Excel,但保存我的项目总是出错。
我使用Windows 7和Visual Basic 2010.实际上有3列,并且因为我正在运行食物菜单程序,所以行的数量意外,所以子项目的数量是意料之外的。
Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button13.Click
Try
Me.Cursor = Cursors.WaitCursor
Dim ExcelApp As Object, ExcelBook As Object
Dim ExcelSheet As Object
Dim i As Integer
Dim j As Integer
ExcelApp = CreateObject("Excel.Application")
ExcelBook = ExcelApp.WorkBooks.Add
ExcelSheet = ExcelBook.WorkSheets(1)
With ExcelSheet
For i = 1 To Me.ListView1.Items.Count
.cells(i, 1) = Me.ListView1.Items(i - 1).Text
For j = 1 To ListView1.Columns.Count - 1
.cells(i, j + 1) = Me.ListView1.Items(i - 1).SubItems(j).Text
Next
Next
End With
ExcelApp.Visible = True
ExcelSheet = Nothing
ExcelBook = Nothing
ExcelApp = Nothing
Me.Cursor = Cursors.Default
Catch ex As Exception
Me.Cursor = Cursors.Default
MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Try
Exit Sub
End Sub
我希望它在Excel程序中显示以下listview项,但只是一个错误,所以它无法继续。
请尝试以下更新的代码:
Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
Try
Me.Cursor = Cursors.WaitCursor
Dim ExcelApp As Object, ExcelBook As Object
Dim ExcelSheet As Object
Dim i As Integer
Dim j As Integer
ExcelApp = CreateObject("Excel.Application")
ExcelBook = ExcelApp.WorkBooks.Add
ExcelSheet = ExcelBook.WorkSheets(1)
With ExcelSheet
For i = 0 To Me.ListView1.Columns.Count - 1
.cells(1, i + 1) = Me.ListView1.Columns(i).Text
Next
For i = 0 To Me.ListView1.Items.Count - 1
For j = 0 To Me.ListView1.Items(i).SubItems.Count - 1
.cells(i + 2, j + 1) = Me.ListView1.Items(i).SubItems(j).Text
Next
Next
End With
ExcelApp.Visible = True
ExcelSheet = Nothing
ExcelBook = Nothing
ExcelApp = Nothing
Me.Cursor = Cursors.Default
Catch ex As Exception
Me.Cursor = Cursors.Default
MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Try
Exit Sub
End Sub