VB.NET使用标题导出到Excel

时间:2015-02-11 10:43:12

标签: vb.net datagridview export-to-excel

我正在将Excel文件上传到datagridview。此文件具有视图标题 (Case,Paid,Curr,Narrative1,Narrative2,Account,Grouping)。

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

根据我是否可以将此行上传到我的数据库是或否,我将填充两个不同的datagridviews。 datagridview2表示所有错误,datagridview3表示所有成功错误。

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

例如,我的DGV看起来像这样: enter image description here

我将此代码导出到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

但我收到一条错误消息说 enter image description here

它指向

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

有人知道如何解决这个问题吗?从理论上讲,这些领域中的任何一个都可能是空的。

我正在使用Visual Studio 2010。

1 个答案:

答案 0 :(得分:0)

尝试删除datagridview值的ToString部分,如下所示:

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

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

引起的