2016-11-28 77 views
0

我已经在我的应用程序中导出到Excel函数。 程序本身没有问题,但是在导出数据时,它显示DateTime值为dd/MM/yyyy 00:00:00,在导入之前在DataGridView上显示它们时,会在某些位置显示空单元格。导出到Excel - 创建日期时间列日期

我需要调整我的导出代码以删除数据的时间部分,并只显示日期。当我在Excel中突出显示单元格时,我将其格式设置为格式为dd/MM/yyyy的“日期”。

如何以编程方式执行此操作?

我的代码

Dim xlapp As Excel.Application 
Dim xlWorkbook As Excel.Workbook 
Dim xlWorksheet As Excel.Worksheet 
Dim misvalue As Object = Reflection.Missing.Value 

xlapp = New Excel.Application 
xlWorkbook = xlapp.Workbooks.Add(misvalue) 
xlWorksheet = xlWorkbook.Sheets.Add 
xlWorksheet.Name = "SupplierInformation" 
xlWorksheet.Cells.NumberFormat = "@" 

    For k As Integer = 1 To dgvExport.Columns.Count 
    xlWorksheet.Cells(1, k) = dgvExport.Columns(k - 1).HeaderText 
    Next 

    For i = 0 To dgvExport.RowCount - 1 
    For j = 0 To dgvExport.ColumnCount - 1 
     xlWorksheet.Cells(i + 2, j + 1) = dgvExport(j, i).Value.ToString 
    Next 
    Next 

xlWorksheet.Columns.AutoFit() 
+0

这也许[问题](http://stackoverflow.com/questions/7106238/changing-date-format-to-yyyy-mm-dd)可以帮助 –

+0

@Harmambe从我在问题中读到的内容,那是什么答案是在格式化Excel单元格。 'cell.NumberFormat =“yyyy-mm-d; @”' –

+0

你必须循环遍历列并格式化单元格然后 –

回答

1
  • 声明将被用于指代一个范围,例如一个变量;

Dim eRange as Excel.Range

  • 然后,设置范围在Worksheet

eRange = xlWorksheet.Range("A1", B5")

  • 然后设置格式,使用.NumberFormat

eRange.NumberFormat = "dd/MM/yyyy"

FYI:This link含有相当的信息都很多,你可以在任何时候需要有关如何使用VB格式的Excel数据和细胞

+0

我昨天已经找到了这个链接,应该可能已经删除了这个问题,但是这是我做到了这一点。谢谢 – Harambe