以下VB代码实现从datagridview导出数据到EXCEL,并以时间作为excel的文件名
需要用到的dll
Microsoft.Office.Interop.Excel.dll
引入命名空间
Imports Microsoft.Office.Interop
Try
Dim xlApp, xlBook, xlSheet As Object
xlApp = CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.Add
xlSheet = xlBook.Worksheets()
'使工作表不可见
xlApp.Visible = False
'导出DataGridView中的标题
Dim Cols As Integer
For Cols = 1 To testHistoryDgv.Columns.Count
xlApp.Cells(1, Cols) = testHistoryDgv.Columns(Cols - 1).HeaderText
Next
'逐行导出DataGridView中的数据
Dim i As Integer
For i = 0 To testHistoryDgv.RowCount - 1
Dim j As Integer
For j = 0 To testHistoryDgv.ColumnCount - 1
'判断DataGridview中的数据是否导出完毕
If Me.testHistoryDgv(j, i).Value Is System.DBNull.Value Then
xlApp.Cells(i = 2, j = 1) = ""
Else
xlApp.Cells(i + 2, j + 1) = testHistoryDgv(j, i).Value.ToString
End If
Next
Next
'定义文件名-取系统时间作为excel文件名
Dim fileName As String = Format(Now, "yyyyMMdd") + Format(Now, "HH:mm:ss").Replace(":", "")
’excelPath是文件路径,通过配置文件配置
Dim flg As Boolean = xlBook.SaveAs(excelPath & fileName & ".xlsx")
If flg = True Then
MessageBox.Show("操作成功", "XXXX", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)
End If
'关闭Excel线程
xlApp.Quit()
xlApp = Nothing
xlBook = Nothing
xlSheet = Nothing
Catch ex As Exception
'异常捕捉
LogUtil.err(ex.ToString)
MessageBox.Show("系统异常", "Message", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try