| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
免费IT实战开发视频教程合集分享千里之行 始于足下
共有 983 人关注过本帖
标题:datetable数据导入到excel中。时间格式数据出现######
只看楼主 加入收藏
man94ht
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:4
帖 子:20
专家分:0
注 册:2017-5-7
结帖率:100%
  问题点数:0  回复次数:6   
datetable数据导入到excel中。时间格式数据出现######
这一段代码:
DataTable dtMRCallBack;
  ......
string str = dtMRCallBack.Rows[i][j].ToString();
wSheet.Cells[1, 1 + i] = str;

问题:当str数据是 "2017-01-15"时。导入到excel会被转换成"2017/1/15";而且会出现######。我想数据仍是"2017-01-15"要怎么做?
附件: 您没有浏览附件的权限,请 登录注册
2018-05-17 11:00
man94ht
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:4
帖 子:20
专家分:0
注 册:2017-5-7
  得分:0 
我搜索了资料有两种办法,一种是
Microsoft.Office.Interop.Excel.Range range = (Microsoft.Office.Interop.Excel.Range)wSheet.Cells[1,5];//列5
range.NumberFormat = Microsoft.Office.Interop.Excel.XlParameterDataType.xlParamTypeUnknown;
另一种是:

wSheet.Cells[i + 2, j + 1] = str;  改成
wSheet.Cells[i + 2, j + 1] = “'” + str;
第二种好的一点是不转换为日期格式,而是按照自己想要的格式规范。比如我想要2018-1-15;并不会转成2018/1/15;
2018-05-17 21:13
eiceblue
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-6-15
  得分:0 
用个第三方控件辅助试试看,Spire.Xls.dll这个类库来导数据到Excel不错,可以参考https://www.e-iceblue.cn/spirexls/import-or-export-data.html
2018-06-15 16:43
pengzhanggui
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:160
专家分:344
注 册:2015-7-20
  得分:0 
用这个试试: range.EntireColumn.AutoFit();

来找我试试看
2018-06-20 09:57
man94ht
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:4
帖 子:20
专家分:0
注 册:2017-5-7
  得分:0 
回复 3楼 eiceblue
谢谢,我试试你这个
2018-07-02 10:25
man94ht
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:4
帖 子:20
专家分:0
注 册:2017-5-7
  得分:0 
回复 4楼 pengzhanggui
好的,我了解下
2018-07-02 10:29
zbjzbj
Rank: 9Rank: 9Rank: 9
来 自:郑州
等 级:贵宾
威 望:13
帖 子:311
专家分:1472
注 册:2011-4-22
  得分:0 
出现######,是该列数据位数不足,只要把该列宽度加宽一点就行了。至于该列的数据格式,可以在excel列设置,也可以编程设置,简单的话在excel指定该列格式
2018-07-13 10:18







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022552 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved