注册 登录
编程论坛 C# 论坛

datetable数据导入到excel中。时间格式数据出现######

man94ht 发布于 2018-05-17 11:00, 3407 次点击
这一段代码:
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"要怎么做?
只有本站会员才能查看附件,请 登录
6 回复
#2
man94ht2018-05-17 21:13
我搜索了资料有两种办法,一种是
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;
#3
eiceblue2018-06-15 16:43
用个第三方控件辅助试试看,Spire.Xls.dll这个类库来导数据到Excel不错,可以参考https://www.
#4
pengzhanggui2018-06-20 09:57
用这个试试: range.EntireColumn.AutoFit();
#5
man94ht2018-07-02 10:25
回复 3楼 eiceblue
谢谢,我试试你这个
#6
man94ht2018-07-02 10:29
回复 4楼 pengzhanggui
好的,我了解下
#7
zbjzbj2018-07-13 10:18
出现######,是该列数据位数不足,只要把该列宽度加宽一点就行了。至于该列的数据格式,可以在excel列设置,也可以编程设置,简单的话在excel指定该列格式
1