Excel时间格式数据转换为XML格式的文本值

时间:2010-06-04 08:14:31

标签: xml excel

感谢您查看我的问题。

这基本上是我正在努力的

**Shift Start Time  Break 1 Time    Lunch Time  Break 2 Time    Shift End Time**
     7:00:00      8:30:00            12:00:00         14:30:00         16:30:00

当我从我的.Net代码将此excel转换为XML时,Xcl中的时间值将转换为文本,因此数据会变坏。

Shift_x0020_Start_x0020_Time=''0.291666666666667''  
Break_x0020_1_x0020_Time=''0.354166666666667'' 
Lunch_x0020_Time=''0.5'' 
Break_x0020_2_x0020_Time=''0.604166666666667'' 
Shift_x0020_End_x0020_Time=''0.6875''

这是XML生成的外观。我不希望这种情况发生,我想保留用户所拥有的实际时间值。请建议做什么。

2 个答案:

答案 0 :(得分:0)

日期在Excel中存储为数字,时间为小数。因此,中午12点正好是0.5(半天)。在编写XML之前,您必须将分数转换为小时:分钟:秒自己在.net代码中。

n is the number given to you by Excel

h       = n*24
hours   = floor(h)
m       = (h-hours) * 60
minutes = floor(m)
seconds = floor((m-minutes) * 60)

答案 1 :(得分:0)

任何来到这里寻找.net解决方案的人。这就是你如何在.net中完成的。

您可以使用:

public void FractionTOTime()
{
    TimeSpan time = null;

    time = TimeSpan.FromDays(Convert.ToDouble("2.0833333333333332E-2"));

    Console.WriteLine(time.ToString());

}