將DataTable轉換成CSV文件是一種常見的轉換形式,主要通過遍歷Table的每行,再對每行遍歷每列,實現對數據的讀取,然後用分隔符分隔Table的每個欄位數據,把讀取的字元寫入到CSV文件中。這裡每個欄位之間用逗號分隔,每行用換行符。實現代碼如下: public ExecutionResult ...
將DataTable轉換成CSV文件是一種常見的轉換形式,主要通過遍歷Table的每行,再對每行遍歷每列,實現對數據的讀取,然後用分隔符分隔Table的每個欄位數據,把讀取的字元寫入到CSV文件中。這裡每個欄位之間用逗號分隔,每行用換行符。實現代碼如下:
public ExecutionResult DataTableToCsv(System.Data.DataTable vContent, string vOutputFilePath) { ExecutionResult sResult = new ExecutionResult(); System.Text.StringBuilder sCsvContent; try { sCsvContent = new System.Text.StringBuilder(); //欄位 for (int i = 0; i < vContent.Columns.Count; i++) { sCsvContent.Append(vContent.Columns[i].ColumnName); sCsvContent.Append(i == vContent.Columns.Count - 1 ? "\r\n" : ","); } //數據 foreach (System.Data.DataRow row in vContent.Rows) { for (int i = 0; i < vContent.Columns.Count; i++) { sCsvContent.Append(row[i].ToString().Trim()); sCsvContent.Append(i == vContent.Columns.Count - 1 ? "\r\n" : ","); } } File.WriteAllText(vOutputFilePath, sCsvContent.ToString(), Encoding.UTF8); sResult.Status = true; } catch (Exception ex) { sResult.Message = ex.Message; sResult.Status = false; } return sResult; }