我已經採用了將DataTable轉換爲CSV文件的一些代碼。除了在實際數據中使用逗號之外,它似乎工作得很好。在這種情況下有沒有辦法顯示逗號?這是我所做的:將DataTable導出爲CSV時的逗號問題
回答
如果一個字段包含一個逗號,它應該放在雙引號(或單引號)中。
您可以使用FileHelpers library來創建您的CSV文件,它應該妥善處理轉義。
如果您不想使用該庫,那麼最重要的是:如果您有逗號,則必須將您的字段放在引號內,例如
ID, NAME
1, "Doe, John"
2, 'Doe, Jane'
如果你的領域包括引號,你應該用一個額外的報價進行轉義:
3, "Anakin ""Darth Vader"", Skywalker"
4, 'O''Connor, Sinead'
一個可能的解決方案:
static string CsvEscape(this string value) {
if (value.Contains(",")) {
return "\"" + value.Replace("\"", "\"\"") + "\"";
}
return value;
}
然後在你的代碼:
IEnumerable<string> fields = row.ItemArray.Select(field => field.ToString().CsvEscape());
或者將OP改爲他的大部分代碼,在選擇的字段中使用'@「\」「+ field @」\「」' ? :) – LukeHennerley 2013-02-18 14:05:42
@LukeHennerley - 請您詳細說明一下嗎? :) – 2013-02-18 14:08:24
@DotNET如果你有一種情況,你可以讓你的分隔符在一些數據中,你應該用雙引號括起數據''「' – LukeHennerley 2013-02-18 14:16:09
我發表了以下修改後的代碼,它可以幫助你。
StringBuilder sb = new StringBuilder();
string[] val = { "ramesh","suresh, Ganesh" };
IEnumerable<string> columnNames = val;
IList<string> objFinal = new List<string>();
foreach (string v in columnNames)
{
string temp = v;
if (temp.Contains(","))
temp = "\"" + v + "\"";
objFinal.Add(temp);
}
sb.AppendLine(string.Join(",", objFinal.AsEnumerable<string>()));
}
CSV支持雙代碼之間數據的逗號。
您可以附加在單杆雙碼以及逗號,代碼下面一行的幫助
IEnumerable<string> columnNames = dtResults.Columns
.Cast<DataColumn>()
.Select(column => column.ColumnName);
var res = columnNames.Aggregate((current, next) => "\"" + current + "\"" + ", " + "\"" + next + "\"");
File.WriteAllText(saveFileDialog.FileName, res.ToString());
[CSV數據中逗號(的
- 1. Excel將額外逗號導出爲CSV
- 2. 將SQL Server表導出爲CSV問題逗號,製表符和引號
- 3. 將CSV導入R時的逗號逗號
- 4. 如何將jQuery dataTable導出爲CSV?
- 5. 打開CSV:如何在將SQL轉儲導出爲CSV時轉義逗號
- 6. 導出數據與逗號問題
- 7. CSV格式文件導入到MySQL地址時出現逗號的問題
- 8. 將.xls導出爲.csv問題
- 9. Gridview:導出爲csv問題
- 10. C#導出爲CSV問題
- 11. Powershell - 導出爲CSV問題
- 12. 當數據包含逗號時從Gridview導出爲CSV
- 13. WKWebView:jquery datatable CSV導出
- 14. 導出爲CSV的導軌缺失逗號分隔符
- 15. 將數據導出爲CSV時出現問題
- 16. 將SSRS報告導出爲CSV時的問題
- 17. 將數據導出爲CSV導出問題
- 18. CSV中的逗號逗號
- 19. 在列標題名稱中使用逗號導出SSRS csv
- 20. 的Javascript導出爲CSV編碼問題
- 21. 問題與導入CSV使用PHP由於逗號字符串
- 22. 輸出爲CSV包括逗號
- 23. PHP逗號分隔字符串數組導出爲CSV
- 24. 可能將COBOL VISION數據庫導出爲逗號分隔的.csv?
- 25. 使用單元格值中的逗號將Excel保存或導出爲csv
- 26. 如何使用逗號將字符串導出爲csv中的值?
- 27. 將.csv文件導入到DataTable中遇到問題
- 28. 導出的GridView到DataTable問題
- 29. CSV文件導出問題
- 30. Highcharts csv導出問題
可能重複http://stackoverflow.com/questions/4123875/commas-within-csv-data) – ChrisF 2013-02-18 14:00:13
另一個可能的重複:http://stackoverflow.com/questions/769621/dealing-with-commas-in-a-csv-file – 2013-02-18 14:01:10
'field.ToString() '會導致'NullReferenceException'。使用'string.Join(「,」,row.ItemArray)' – 2013-02-18 14:02:55