首页 新闻 会员 周边

datatable 导入数据到csv文件中,出现数据前多一个tab的距离。。。

0
悬赏园豆:20 [已解决问题] 解决于 2017-11-16 16:19

有columnName: number如0001245,

在导入csv时如果不加tab符号-((char)(9)).ToString(),就会出现前面的0都会丢失。

如果加了,0不会丢失,但是前面会出现一个tab的距离。

请问如何解决这个tab距离的问题。。。

 

不要说用NPOI等等。。。现在就通过stream导入数据到csv, 怎么破?

 

 

 1  for (int i = 0; i < dt.Rows.Count; i++)
 2             {
 3                 data = string.Empty;
 4                 
 5                 for (int j = 0; j < dt.Columns.Count; j++)
 6                 {
 7                     string singleData = dt.Rows[i][j].ToString().Trim();
 8 
 9                     //clear ',' from data, because effect export data.
10                     if (singleData.Contains(","))
11                         singleData = singleData.Replace(',', ' ');
12                     if (singleData.Contains("\""))
13                         singleData = singleData.Replace("\"", " ").Trim();
14 
15                     data += j == 0 ? ((char)(9)).ToString() + singleData : singleData;
16 
17                     if (j < dt.Columns.Count - 1)
18                     {
19                         data += ",";
20                     }
21                 }
22                 sw.WriteLine(data);
23             }

 

 

~扎克伯格的主页 ~扎克伯格 | 小虾三级 | 园豆:1923
提问于:2017-09-26 17:07
< >
分享
最佳答案
0

可以贴一下你的转换代码

收获园豆:20
写代码的小2B | 老鸟四级 |园豆:4371 | 2017-09-26 17:51
 1  for (int i = 0; i < dt.Rows.Count; i++)
 2             {
 3                 data = string.Empty;
 4                 
 5                 for (int j = 0; j < dt.Columns.Count; j++)
 6                 {
 7                     string singleData = dt.Rows[i][j].ToString().Trim();
 8 
 9                     //clear ',' from data, because effect export data.
10                     if (singleData.Contains(","))
11                         singleData = singleData.Replace(',', ' ');
12                     if (singleData.Contains("\""))
13                         singleData = singleData.Replace("\"", " ").Trim();
14 
15                     data += j == 0 ? ((char)(9)).ToString() + singleData : singleData;
16 
17                     if (j < dt.Columns.Count - 1)
18                     {
19                         data += ",";
20                     }
21                 }
22                 sw.WriteLine(data);
23             }
View Code
~扎克伯格 | 园豆:1923 (小虾三级) | 2017-09-26 17:56

@~扎克伯格: 

感觉可能是和CSV列的数据类型有关,  你可以从这个方面入手,查查相关资料。

写代码的小2B | 园豆:4371 (老鸟四级) | 2017-09-26 18:02

@写代码的小2B: 。。。

~扎克伯格 | 园豆:1923 (小虾三级) | 2017-09-26 18:02
其他回答(2)
0

去把npoi的转义处理函数抄上去。

花飘水流兮 | 园豆:13560 (专家六级) | 2017-09-26 17:15
0

你用记事本打开看看呢?还有你最后多了一个逗号

Daniel Cai | 园豆:10424 (专家六级) | 2017-09-26 18:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册