我有一个datagridview,其中有很多员工从表中检索的时间和超时记录。现在我可以将数据从datagridview导出到excel文件,但我遇到了问题。
列时间和超时的时间格式非常好,如“9:00 AM”,但是当导出到excel时,它变为“12/30/1899 9:00:00 AM”。这也是我在datagridview中的第一个问题,但我使用DGV.Columns(1).DefaultCellStyle.Format =“t”来解决问题。有人教我
答案 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
我使用循环捕获要格式化的单元格
感谢您的提示!