首页 新闻 会员 周边

C# 导出Excel 时间格式问题。

0
悬赏园豆:10 [已解决问题] 解决于 2014-07-04 15:48

情况是这样的:如果我的时间数据是这样的(2014-10)的话导出的数据会变成OTC-14.我试了在代码里将格式设为文本和时间格式都不行。

kistliu的主页 kistliu | 初学一级 | 园豆:138
提问于:2014-07-04 14:22
< >
分享
最佳答案
0

在你的 C# 代码中,时间的数据类型是 String 吗?

你的格式设置的代码是什么?

收获园豆:10
Launcher | 高人七级 |园豆:45045 | 2014-07-04 14:26

时间的数据类型是 String 的。

这个是时间格式 vnd.ms-excel.numberformat:yyyy/mm

这个是文本 vnd.ms-excel.numberformat:@

kistliu | 园豆:138 (初学一级) | 2014-07-04 14:29

@kistliu: 我不知道 vnd.ms-excel 是啥玩意儿,我建议你将 String 修改为 DateTime 类型,然后使用你的这些日期设置。

Launcher | 园豆:45045 (高人七级) | 2014-07-04 14:34

@kistliu: 我测试了下 OTC-14 在 excel 中的格式是 mmm-yy,所以你的格式没有设置成功。

Launcher | 园豆:45045 (高人七级) | 2014-07-04 14:36

@Launcher: vnd.ms-excel.numberformat:yyyy/mm这中格式的设置方式是使用了mime格式的导出方式。也就是页面导出。数字类型的倒是设置成功了。这个转化DataTime类型还没试,不过我觉得应该是一样的。

kistliu | 园豆:138 (初学一级) | 2014-07-04 14:42

@kistliu: 不太清楚 vnd.ms-excel.numberformat:yyyy/mm 的实现方式,但是大概有两种:

1、在 C# 代码中通过 yyyy/mm 格式化后插入 Excell 单元格,由于是在代码中格式化,所以你需要 DateTime 类型,String 类型的话不会应用格式,而是按照原来的值输出,那么在 Excel 中就显示为:OTC-14,你可以打开 Excel,在单元格中输入“2014-10”,回车后就会看到结果。

2、在 Excel 中格式化,这种方式会将 "2014-10" 作为字符串插入 Excel 单元格,然后设置单元格的格式为“yyyy/mm”,然后 Excel 根据新设定的格式显示字符串。

Launcher | 园豆:45045 (高人七级) | 2014-07-04 14:49

@Launcher: 对于这种vnd.ms-excel.numberformat:yyyy/mm 的实现方式,其实不管代码里面的数据类型是什么,只要导出的时候设置了单元格格式,Excel里面就会显示成这个格式。

kistliu | 园豆:138 (初学一级) | 2014-07-04 15:01

@Launcher: 还有问题解决了,非常感谢。

kistliu | 园豆:138 (初学一级) | 2014-07-04 15:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册