将导出值(时间)从datagridview转换为excel

时间:2017-11-07 08:19:04

标签: excel ms-access datagridview vb.net-2010

我有一个datagridview,其中有很多员工从表中检索的时间和超时记录。现在我可以将数据从datagridview导出到excel文件,但我遇到了问题。

列时间和超时的时间格式非常好,如“9:00 AM”,但是当导出到excel时,它变为“12/30/1899 9:00:00 AM”。这也是我在datagridview中的第一个问题,但我使用DGV.Columns(1).DefaultCellStyle.Format =“t”来解决问题。有人教我

2 个答案:

答案 0 :(得分:1)

没有问题。日期1899-12-30是零值日期,并且 - 如果没有给出日期 - 时间值将始终属于零日期。

因此,您只需在显示值时应用时间格式

<强>附录

看来,如果您只在Excel中直接输入时间,它会使用零值日期 1900-01-01

因此,在导出时,添加两天,例如:

Dim t As TimeSpan
Dim d As DateTime
t = New TimeSpan(14, 34, 0)   ' Your cell value.
d = New DateTime(1900, 1, 1).AddTicks(t.Ticks)

然后导出d。

答案 1 :(得分:0)

已经解决了!我用这个代码

cellvalue = DGVResult.Rows(i).Cells(j).Value.ToString

Date.Parse(cellvalue).ToString("hh:mm tt").ToString

我使用循环捕获要格式化的单元格

感谢您的提示!