VB.NET 使用 header 导出到 Excel

VB.NET Export to Excel with header

我正在将 Excel 文件上传到数据网格视图中。此文件有一个视图 headers (案例、付费、当前、Narrative1、Narrative2、帐户、分组)。

但是,无论出于何种原因,其中一些字段可能为空(无效条目、案例编号不匹配,等等)。

取决于我是否可以将此行上传到我的数据库是或否,我正在填充两个不同的数据网格视图。 datagridview2 表示所有错误,datagridview3 表示所有成功。

但是,我需要将这两个文件导出回 Excel,这就是我出错的地方。

例如,我的 DGV 是这样的:

我将其导出到 Excel 的代码是这样的:

Private Sub ExportErrors(FileName)
    Dim xlApp As Excel.Application
    Dim xlWorkBook As Excel.Workbook
    Dim xlWorkSheet As Excel.Worksheet
    Dim misValue As Object = System.Reflection.Missing.Value
    Dim path As String
    Dim i As Int16, j As Int16

    xlApp = New Excel.ApplicationClass
    xlWorkBook = xlApp.Workbooks.Add(misValue)
    xlWorkSheet = xlWorkBook.Sheets("sheet1")


    For i = 0 To DataGridView2.RowCount - 2
        For j = 0 To DataGridView2.ColumnCount - 1
            For k As Integer = 1 To DataGridView2.Columns.Count
                xlWorkSheet.Cells(1, k) = DataGridView2.Columns(k - 1).HeaderText
                xlWorkSheet.Cells(i + 2, j + 1) = DataGridView2(j, i).Value.ToString()
            Next
        Next
    Next

    path = ErrorProcessedDirectory & FileName & "Error.xls"

    xlWorkBook.SaveAs(path, 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("Export Successful")
End Sub

但是我收到一条错误消息说

它指向行

xlWorkSheet.Cells(i + 2, j + 1) = DataGridView2(j, i).Value.ToString()

有人知道如何解决这个问题吗?理论上,这些字段中的任何一个都可以为空。

我正在使用 Visual Studio 2010。

尝试像这样删除 datagridview 值的 ToString 部分:

xlWorkSheet.Cells(i + 2, j + 1).value = DataGridView2(j, i).Value

我认为错误是因为 Nothing / Null 没有 ToString 函数