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")
结果: