C#TimeSpan到Open XML的Excel

我正在创build一个项目,在MS Word 2010文档中创build一个显示时间的条形图。 主程序将这些时间存储在List<TimeSpan>

我使用Word中的“插入图表”function创build了一个示例Word文档,并用不同的时间(每个小时约1小时)制作了一个条形图,例如,格式为01:04:04(使用此代码作为模板)。

我查看了Open XML SDK 2.0生产力工具,注意到它是在reflection代码中生成的(对于上面的示例):

 numericValue9.Text = "4.449074074074074E-2"; //01:04:04 

如果我想用我的List<TimeSpan>自动生成这个,我该如何将我的TimeSpans转换为这个小的数值? 那是TimeSpan.TotalDays吗?

另外,看Word文档(右键单击图表并select编辑数据),我注意到“AM”被追加到我的TimeSpan的末尾。 Excel是否将我的时间跨度转换为date时间?

正如DJ KRAZE所说,这是由于单元格的原因。
Open XML假定DataType = CellValues.String但是如果它实际上不是stringtypes的话,它会返回一些看起来不正确的东西(你的“小数字”)。

解决这个问题的方法就是将单元格格式化为文本。 你可以使用这样的公式来做到这一点:

 // A1 being what ever cell your original data is in =TEXT(A1, "h:mm:ss") 

结果:

结果