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 函数
我正在将 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 函数