将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;


            }


            /// 
            /// 将指定的数据集中指定的表转换成CSV字符串
            /// 
            /// 
            /// 
            /// 
            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




你可能感兴趣的:(.NET)