Excel C#COM插件返回一个数组与date和双打

我的C#Excel插件正在将时间序列转换为另一个时间序列。

时间序列被定义为两列的范围,第一列是date,第二列是浮点数。

尽pipe我的C#代码返回DateTime作为date,但Excel将其转换为以date表示的Exceldate,显示的值是整数,例如39000,而不是date格式,例如14/12/2012。

因此,用户必须按CTRL +#将其变成date。

有没有办法以某种方式返回一个已经格式化为Exceldate的Excel的Excel插件的输出?

a)从返回值的代码格式化单元格。 例如,如果你有一个范围对象的句柄,你可以做一些像range.NumberFormat="yyyy-mm-dd"

b)在运行导入数据的代码之前,将单元格格式化为date格式。 如果每次使用相同的表单,而不是空白表单或任意表单,​​这将起作用。

c)这是一个丑陋的黑客,但尝试返回您的date值作为string,格式为“mm / dd / yyyy”。 这应该强制Excel将这些值解释为date。 在这种情况下,AFAIK机器语言环境设置不会影响翻译。

补充Adam的c)答案:
如果你有一个date/时间variables,并使用Range.Value从一个Sub将其返回给一个单元格,它将把该单元格格式化为一个date(使用VBA而不是C#testing:不确定.Value是否可以使用interop?)
如果使用Range.Value2,它不会将单元格格式化为date。
如果您尝试从UDF执行此操作,则UDF将不会更改单元格的格式。