1. 程式人生 > >將DataSet轉換成CSV檔案自己的用法

將DataSet轉換成CSV檔案自己的用法

知識點: 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