有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 }
可以贴一下你的转换代码
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 }
@~扎克伯格:
感觉可能是和CSV列的数据类型有关, 你可以从这个方面入手,查查相关资料。
@写代码的小2B: 。。。
去把npoi的转义处理函数抄上去。
你用记事本打开看看呢?还有你最后多了一个逗号