C# 在excel中显示时间跨度

C# 在excel中显示时间跨度,c#,sql,excel,timespan,C#,Sql,Excel,Timespan,我将timespan存储为sql中的varchar,格式为totalhours totalminutes totalseconds。 现在我必须将这些信息导出到excel中 我遇到的问题是,我一生都无法在excel中找到正确显示此信息的格式。是否有正确显示此信息的方法?我正在使用C#中的XLS输出此信息 样本输入:48:00:11 样本输出:1900/02/17 12:11:00 AM或48.00763888889 要设置格式,您需要设置自定义时间格式: [h]:mm:ss …将显示持续时间超过

我将timespan存储为sql中的varchar,格式为totalhours totalminutes totalseconds。 现在我必须将这些信息导出到excel中

我遇到的问题是,我一生都无法在excel中找到正确显示此信息的格式。是否有正确显示此信息的方法?我正在使用C#中的XLS输出此信息

样本输入:48:00:11

样本输出:1900/02/17 12:11:00 AM或48.00763888889


要设置格式,您需要设置自定义时间格式:

[h]:mm:ss

…将显示持续时间超过24小时的小时数。如果在Excel单元格中键入“48:00:11”,它将为您创建自定义格式(至少,刚才在我的计算机上的Excel 2007中是这样)。删除格式将显示预期的双精度值(所有非字符串均为):2.000127,这是持续时间的天数(时间为分数)


从C#将该字符串值放入工作表可能会有不同的结果:我从48.007638中怀疑是这样的。。。你获得的价值。由于您可以使用C#,我倾向于将时间跨度计算为将值推送到Excel之前的天数,然后按上述格式设置。

文本格式?这取决于你想用它做什么。这种格式不起作用吗?
dd/mm/yyyy h:mm:ss
,它将是
02/01/1900 00:00:11 AM
(你在分钟部分有11个,但不是这样)你有一个很好的观点@Mike。但是如果我使用输入,例如:1:08:44,它会以[h]:mm:ss格式正确显示吗?但是输入48:00:11不会正确显示吗?最好的猜测是:如果Excel认为您需要48天的
48:00:11
,那么在您的C代码编写工作表时会发生一些事情。很难知道可用的信息。好吧,那么,我将尝试简单的代码并用它编辑我的帖子。