C# 生成CSV文件 或者导出CSV文件

直接上代码 


/// 
        /// 导出CSV
        /// 
        /// 表格控件
        /// 数据表格
        /// 目录
        /// 文件名
        public static void ExportCSV(System.Data.DataTable table, string directory, string fileName)
        {
            // 开始忙了

            string directoryName = directory;
            if (!Directory.Exists(directoryName))
            {
                Directory.CreateDirectory(directoryName);
            }
            string file = directory + fileName;
            // if (!this.FileExist(file))
            // {
            ExportCSV(table, file);
            //Process.Start(file);
            //  }
            // 已经忙完了

        }



#region public static void ExportCSV(DataTable dataTable, string fileName) 导出CSV格式文件
        /// 
        /// 导出CSV格式文件
        /// 
        /// 数据表
        /// 文件名
        public static void ExportCSV(DataTable dataTable, string fileName)
        {
            StreamWriter StreamWriter = new StreamWriter(fileName, false, System.Text.Encoding.GetEncoding("gb2312"));
            StreamWriter.WriteLine(GetCSVFormatData(dataTable).ToString());
            StreamWriter.Flush();
            StreamWriter.Close();
        }
        #endregion

#region public static StringBuilder GetCSVFormatData(DataTable dataTable) 通过DataTable获得CSV格式数据
        /// 
        /// 通过DataTable获得CSV格式数据
        /// 
        /// 数据表
        /// CSV字符串数据
        public static StringBuilder GetCSVFormatData(DataTable dataTable)
        {
            StringBuilder StringBuilder = new StringBuilder();
            // 写出表头

            StringBuilder.Append("AAAA,VVVVV,CCCCC ");
            StringBuilder.Append("\n");
            // 写出数据
            int count = 0;
            foreach (DataRowView dataRowView in dataTable.DefaultView)
            {
                count++;
                foreach (DataColumn DataColumn in dataTable.Columns)
                {
                    string field = dataRowView[DataColumn.ColumnName].ToString();

                    if (field.IndexOf('"') >= 0)
                    {
                        field = field.Replace("\"", "\"\"");
                    }
                    field = field.Replace("  ", " ");
                    if (field.IndexOf(',') >= 0 || field.IndexOf('"') >= 0 || field.IndexOf('<') >= 0 || field.IndexOf('>') >= 0 || field.IndexOf("'") >= 0)
                    {
                        field = "\"" + field + "\"";
                    }
                    StringBuilder.Append(field + ",");
                    field = string.Empty;
                }
                if (count != dataTable.Rows.Count)
                {
                    StringBuilder.Append("\n");
                }
            }
            return StringBuilder;
        }
        #endregion




你可能感兴趣的:(C# 生成CSV文件 或者导出CSV文件)