【发布时间】:2016-03-01 09:11:38
【问题描述】:
我的程序包含一个数据网格视图,用户在运行时手动填充数据。当用户单击保存时,我希望将 datagridview 导出到他们以后可以访问的 excel 文件。
我现在的代码出现了一个错误类型“空引用异常”
Dim xlApp As Excel.Application = New Microsoft.Office.Interop.Excel.Application()
If xlApp Is Nothing Then
MessageBox.Show("Excel is not properly installed!!")
Return
End If
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
Dim i As Integer
Dim j As Integer
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
'xlWorkSheet.Cells(1, 1) = "Sheet 1 content"
'xlWorkSheet.Cells(3, 3) = "Sheet 1 content"
If ((DataGridView1.Columns.Count = 0) Or (DataGridView1.Rows.Count = 0)) Then
Exit Sub
End If
For k As Integer = 0 To DataGridView1.Columns.Count - 1
xlWorkSheet.Cells(1, k + 1) = DataGridView1.Columns(k).HeaderText
Next
For i = 0 To DataGridView1.RowCount - 1
For j = 0 To DataGridView1.ColumnCount - 1
xlWorkSheet.Cells(i + 2, j + 1) = DataGridView1(j, i).Value.ToString()
Next
Next
xlWorkBook.SaveAs("C:\test\DATAGRID.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue,
Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue)
xlWorkBook.Close(True, misValue, misValue)
xlApp.Quit()
releaseObject(xlWorkSheet)
releaseObject(xlWorkBook)
releaseObject(xlApp)
MessageBox.Show("Excel file created , you can find the file C:\test\DATAGRID.xls")
【问题讨论】:
-
出于好奇,您是否有任何理由使用 System.Reflection.Missing.Value 而不是 Nothing?
-
由于某种原因,当我尝试使用 Nothing 保存它时遇到了一些问题,所以我尝试了这个,代码在没有标题文本下行的代码的情况下工作。所以保存的文件只包含我的datagridview的标题
-
DataGridView1(j, i).Value.ToString()的值是多少?是空的吗?
-
究竟是哪一行引发了异常?
-
DataGridView1(j, i).Value.ToString() 抛出异常
标签: vb.net excel datagridview