將DataSet轉換成CSV檔案自己的用法
阿新 • • 發佈:2019-01-09
知識點: 1、C#.NET 存換行符用/r/n,這樣才會換行 2、ds的每個table是有名字的 ds.Table[0].ToString()為表名table1 其中[0]是索引 表示ds的第一個表 3、相對地址:Response.Write(Request.PhysicalApplicationPath);
4、轉成namespace的時候 這樣命名 函式public static void Export2CSV和 private static string ConverDataSet2CSV 用法:Export2CSV(DsRyMajorTop, "Table1", false, "E:\\company\\JZ\\LDCX_xyw_datav\\pi11e.csv");
轉載的原始碼:#region 001----將DataSet轉換成CSV檔案 public void Export2CSV(DataSet ds, string tableName, bool containColumName, string fileName) { string csvStr = ConverDataSet2CSV(ds, tableName, containColumName); if (csvStr == "") return; FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite); //將string轉換成byte[] byte[] csvArray = System.Text.Encoding.UTF8.GetBytes(csvStr.ToCharArray(), 0, csvStr.Length - 1); fs.Write(csvArray, 0, csvArray.Length - 1); fs.Close(); fs = null; } /// <summary> /// 將指定的資料集中指定的錶轉換成CSV字串 /// </summary> /// <param name="ds"></param> /// <param name="tableName"></param> /// <returns></returns> public string ConverDataSet2CSV(DataSet ds, string tableName, bool containColumName) { //首先判斷資料集中是否包含指定的表 if (ds == null || !ds.Tables.Contains(tableName)) { MessageBox.Show("指定的資料集為空或不包含要寫出的資料表!", "系統提示:", MessageBoxButtons.OK, MessageBoxIcon.Stop); return ""; } string csvStr = ""; //下面寫出資料 DataTable tb = ds.Tables[tableName]; //寫表名 //csvStr += tb.TableName + "/n"; //第一步:寫出列名 if (containColumName) { foreach (DataColumn column in tb.Columns) { csvStr = "\"" + column.ColumnName + "\"" + ","; } //去掉最後一個"," csvStr = csvStr.Remove(csvStr.LastIndexOf(","), 1); csvStr += "/n"; } //第二步:寫出資料 foreach (DataRow row in tb.Rows) { foreach (DataColumn column in tb.Columns) { csvStr += "\"" + row[column].ToString() + "\"" + ","; } csvStr = csvStr.Remove(csvStr.LastIndexOf(","), 1); csvStr += "\r\n"; } return csvStr; } #endregion