public static void SaveCSV(DataTable dt, string fullPath) { var fi = new FileInfo(fullPath); if (!fi.Directory.Exists) { fi.Directory.Create(); } var ...
public static void SaveCSV(DataTable dt, string fullPath) { var fi = new FileInfo(fullPath); if (!fi.Directory.Exists) { fi.Directory.Create(); } var fs = new FileStream(fullPath, FileMode.Append, FileAccess.Write); //StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default); var sw = new StreamWriter(fs, Encoding.UTF8); var data = ""; //寫出列名稱 if (s == 0) { ++s; for (var i = 0; i < dt.Columns.Count; i++) { data += dt.Columns[i].ColumnName; if (i < dt.Columns.Count - 1) { data += ","; } } sw.WriteLine(data); } //寫出各行數據 for (var i = 0; i < dt.Rows.Count; i++) { data = ""; for (var j = 0; j < dt.Columns.Count; j++) { var str = dt.Rows[i][j].ToString(); str = str.Replace("\"", "\"\""); //替換英文冒號 英文冒號需要換成兩個冒號 if (str.Contains(',') || str.Contains('"') || str.Contains('\r') || str.Contains('\n')) //含逗號 冒號 換行符的需要放到引號中 { str = string.Format("\"{0}\"", str); } data += str; if (j < dt.Columns.Count - 1) { data += ","; } } sw.WriteLine(data); } sw.Close(); fs.Close(); }
非原創