将datagrid导出到excel时的日期问题

将datagrid导出到excel时的日期问题,excel,datagrid,Excel,Datagrid,我有以下代码以excel格式导出我的datagrid内容。它可以工作,但问题是在显示日期的列中,而不是在显示日期的列中。为了正确显示日期,我必须手动设置列的格式。有没有办法在导出时自动执行此操作? 先谢谢你 Public Sub export_auto_oraria() Dim ExcelApp As Object, ExcelBook As Object Dim ExcelSheet As Object Dim i As Integer Dim j As Int

我有以下代码以excel格式导出我的datagrid内容。它可以工作,但问题是在显示日期的列中,而不是在显示日期的列中。为了正确显示日期,我必须手动设置列的格式。有没有办法在导出时自动执行此操作? 先谢谢你

Public Sub export_auto_oraria()
    Dim ExcelApp As Object, ExcelBook As Object
    Dim ExcelSheet As Object
    Dim i As Integer
    Dim j As Integer

    'create object of excel
    ExcelApp = CreateObject("Excel.Application")
    ExcelBook = ExcelApp.WorkBooks.Add
    ExcelSheet = ExcelBook.WorkSheets(1)

    With ExcelSheet
        For i = 1 To Me.DataGridView3.RowCount
            .cells(i, 1) = Me.DataGridView3.Rows(i - 1).Cells("d_id").Value
            For j = 1 To DataGridView3.Columns.Count - 1
                .cells(i, j + 1) = DataGridView3.Rows(i - 1).Cells(j).Value
            Next
        Next
    End With

    ExcelApp.Visible = False

    ExcelSheet = Nothing



    Dim path As String = "C:\Users\book1.xlsx"
        ExcelBook.SaveAs(path)
        ExcelApp.Workbooks.Close()
        ExcelApp.Quit()

end sub   '? is this where it ends

这对您的数据传输有所帮助

With ExcelSheet
    For i = 1 To Me.DataGridView3.RowCount
        .cells(i, 1) = Me.DataGridView3.Rows(i - 1).Cells("d_id").Value
        For j = 1 To DataGridView3.Columns.Count - 1
            .cells(i, j + 1) = DataGridView3.Rows(i - 1).Cells(j).Value
        Next
    Next
    For j = 1 To DataGridView3.Columns.Count
        .columns(j).EntireColumn.AutoFit
    Next
End With

@DimitrisDimitri-请记住。AutoFit无法解决Excel使用科学符号表示大量数字的问题,因为科学符号已假定在列宽范围内。没有连字符的电话号码很容易被混淆,变得毫无用处。