亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#導出數據到CSV文件的通用類實例

2020-01-24 01:58:16
字體:
來源:轉載
供稿:網友

本文實例講述了C#導出數據到csv文件的通用類。分享給大家供大家參考。具體如下:

通過這個類可以很簡單的定義數據格式,并導出到csv文件

//這里寫了一個通用的類using System;using System.Data;using System.Configuration;using System.Collections.Generic;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Text;using System.Reflection;using System.IO;using System.Data.Odbc;namespace Com.DRPENG.SDXY.UI.Common{ public class CSVHelper {  #region Fields  string _fileName;  DataTable _dataSource;//數據源  string[] _titles = null;//列標題  string[] _fields = null;//字段名  #endregion  #region .ctor  /// <summary>   /// 構造函數   /// </summary>   /// <param name="dataSource">數據源</param>   public CSVHelper()  {  }  /// <summary>   /// 構造函數   /// </summary>   /// <param name="titles">要輸出到 Excel 的列標題的數組</param>   /// <param name="fields">要輸出到 Excel 的字段名稱數組</param>   /// <param name="dataSource">數據源</param>   public CSVHelper(string[] titles, string[] fields, DataTable dataSource)   : this(titles, dataSource)  {   if (fields == null || fields.Length == 0)    throw new ArgumentNullException("fields");   if (titles.Length != fields.Length)    throw new ArgumentException("titles.Length != fields.Length", "fields");   _fields = fields;  }  /// <summary>   /// 構造函數   /// </summary>   /// <param name="titles">要輸出到 Excel 的列標題的數組</param>   /// <param name="dataSource">數據源</param>   public CSVHelper(string[] titles, DataTable dataSource)   : this(dataSource)  {   if (titles == null || titles.Length == 0)    throw new ArgumentNullException("titles");   _titles = titles;  }  /// <summary>   /// 構造函數   /// </summary>   /// <param name="dataSource">數據源</param>   public CSVHelper(DataTable dataSource)  {   if (dataSource == null)    throw new ArgumentNullException("dataSource");   // maybe more checks needed here (IEnumerable, IList, IListSource, ) ???    // 很難判斷,先簡單的使用 DataTable    _dataSource = dataSource;  }  #endregion  #region public Methods  #region 導出到CSV文件并且提示下載  /// <summary>  /// 導出到CSV文件并且提示下載  /// </summary>  /// <param name="fileName"></param>  public void DataToCSV(string fileName)  {   // 確保有一個合法的輸出文件名    //if (fileName == null || fileName == string.Empty || !(fileName.ToLower().EndsWith(".csv")))   // fileName = GetRandomFileName();   string data = ExportCSV();   HttpContext.Current.Response.ClearHeaders();   HttpContext.Current.Response.Clear();   HttpContext.Current.Response.Expires = 0;   HttpContext.Current.Response.BufferOutput = true;   HttpContext.Current.Response.Charset = "GB2312";   HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");   HttpContext.Current.Response.AppendHeader("Content-Disposition", string.Format("attachment;filename={0}.csv", System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)));   HttpContext.Current.Response.ContentType = "text/h323;charset=gbk";   HttpContext.Current.Response.Write(data);   HttpContext.Current.Response.End();  }  #endregion  /// <summary>  /// 獲取CSV導入的數據  /// </summary>  /// <param name="filePath">文件路徑</param>  /// <param name="fileName">文件名稱(.csv不用加)</param>  /// <returns></returns>  public DataTable GetCsvData(string filePath,string fileName)  {   string path = Path.Combine(filePath, fileName + ".csv");   string connString = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + filePath + ";Extensions=asc,csv,tab,txt;";   try   {    using (OdbcConnection odbcConn = new OdbcConnection(connString))    {     odbcConn.Open();     OdbcCommand oleComm = new OdbcCommand();     oleComm.Connection = odbcConn;     oleComm.CommandText = "select * from [" + fileName + "#csv]";     OdbcDataAdapter adapter = new OdbcDataAdapter(oleComm);     DataSet ds = new DataSet();     adapter.Fill(ds, fileName);     return ds.Tables[0];     odbcConn.Close();    }    if (File.Exists(path))    {     File.Delete(path);    }   }   catch (Exception ex)   {    if (File.Exists(path))    {     File.Delete(path);    }    throw ex;   }  }  #endregion  #region 返回寫入CSV的字符串  /// <summary>  /// 返回寫入CSV的字符串  /// </summary>  /// <returns></returns>  private string ExportCSV()  {    if(_dataSource==null)    throw new ArgumentNullException("dataSource");   StringBuilder strbData = new StringBuilder();   if (_titles == null)   {    //添加列名    foreach (DataColumn column in _dataSource.Columns)    {     strbData.Append(column.ColumnName + ",");    }    strbData.Append("/n");    foreach (DataRow dr in _dataSource.Rows)    {     for (int i = 0; i < _dataSource.Columns.Count; i++)     {      strbData.Append(dr[i].ToString() + ",");     }     strbData.Append("/n");    }    return strbData.ToString();   }   else   {    foreach (string columnName in _titles)    {     strbData.Append(columnName + ",");    }    strbData.Append("/n");    if (_fields == null)    {     foreach (DataRow dr in _dataSource.Rows)     {      for (int i = 0; i < _dataSource.Columns.Count; i++)      {       strbData.Append(dr[i].ToString() + ",");      }      strbData.Append("/n");     }     return strbData.ToString();    }    else    {     foreach (DataRow dr in _dataSource.Rows)     {      for (int i = 0; i < _fields.Length; i++)      {       strbData.Append(_fields[i].ToString() + ",");      }      strbData.Append("/n");     }     return strbData.ToString();    }   }  }  #endregion  #region 得到一個隨意的文件名  /// <summary>   /// 得到一個隨意的文件名   /// </summary>   /// <returns></returns>   private string GetRandomFileName()  {   Random rnd = new Random((int)(DateTime.Now.Ticks));   string s = rnd.Next(Int32.MaxValue).ToString();   return DateTime.Now.ToShortDateString() + "_" + s + ".csv";  }  #endregion }}

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲图片| 亚洲一区二区日本| 国产精品情侣自拍| 亚洲国产精彩中文乱码av| 97精品在线观看| 川上优av一区二区线观看| 欧美电影免费观看网站| 亚洲高清久久网| 日韩av手机在线看| 91精品在线看| 亚洲视频在线观看| 精品视频在线播放免| 久久久久久久亚洲精品| 中文字幕日韩高清| 欧美日韩中文在线观看| 欧美大学生性色视频| 欧美大奶子在线| 欧美中文在线观看国产| 亚洲视频在线看| 欧美黄网免费在线观看| 久久99国产精品久久久久久久久| 精品久久久久久中文字幕一区奶水| 中文字幕在线看视频国产欧美| 91成人免费观看网站| 国内精品400部情侣激情| 国产成人亚洲综合青青| 中文字幕日本欧美| 亚洲精品电影网在线观看| 91精品国产91久久久久| 亚洲精品日韩av| 国产精品av网站| 亚洲一区二区中文| 欧美激情亚洲一区| 欧美性猛交丰臀xxxxx网站| 日韩久久精品电影| 色婷婷综合久久久久中文字幕1| 亚洲一区二区三区视频| 亚洲欧美一区二区精品久久久| 久久精品2019中文字幕| 日本久久91av| 亚洲一区二区三区sesese| 久久久久国产精品一区| 国产69精品99久久久久久宅男| 成人免费网视频| 亚洲女人初尝黑人巨大| 中文字幕国产亚洲2019| 日韩av在线天堂网| 亚洲人午夜精品| 欧美成人精品三级在线观看| 欧美日韩精品在线播放| 91欧美视频网站| 欧美午夜丰满在线18影院| 国产一区二区视频在线观看| 国产有码一区二区| 欧美性生交大片免网| 日韩三级成人av网| 日本精品视频网站| 91久久久久久久久久| 国产综合色香蕉精品| 欧美在线一区二区视频| 91午夜理伦私人影院| 国产偷亚洲偷欧美偷精品| 日韩av片电影专区| 欧美电影《睫毛膏》| 亚洲精品电影网站| 精品无人区乱码1区2区3区在线| 亚洲毛茸茸少妇高潮呻吟| 国产视频丨精品|在线观看| 91美女高潮出水| 国产精品精品一区二区三区午夜版| 九九视频直播综合网| 欧美视频一区二区三区…| 日本精品中文字幕| 欧美日韩激情视频8区| 国产精品白丝jk喷水视频一区| 国产美女91呻吟求| 91精品国产免费久久久久久| 26uuu久久噜噜噜噜| 欧美精品免费在线观看| 国产成人拍精品视频午夜网站| 国产精品美女午夜av| 国产综合香蕉五月婷在线| 国产成人综合一区二区三区| 中文字幕9999| 欧美日韩激情美女| 高清一区二区三区日本久| 日韩精品中文字幕在线观看| 日韩在线观看免费av| 欧美日韩综合视频网址| 最近2019年手机中文字幕| 久久久女人电视剧免费播放下载| 人妖精品videosex性欧美| 日韩电影大全免费观看2023年上| 亚洲成人久久一区| 欧美在线视频一区二区| 日韩欧亚中文在线| 亚洲国产成人在线播放| 国产偷亚洲偷欧美偷精品| 亚洲欧美在线一区| 最近2019中文字幕在线高清| 91日韩在线视频| 亚洲视频精品在线| 日韩在线视频免费观看高清中文| 日韩精品极品毛片系列视频| 日韩国产精品亚洲а∨天堂免| 国产成人精品av在线| 成人黄色短视频在线观看| 欧美成人亚洲成人| 国产香蕉精品视频一区二区三区| 久久99亚洲热视| 国内伊人久久久久久网站视频| 日韩精品在线看| 美女av一区二区| 欧美日韩国产91| 欧美精品少妇videofree| 国产成人精品在线观看| 日本高清+成人网在线观看| 日韩高清欧美高清| 国产精品高清免费在线观看| 国产精品爽爽爽爽爽爽在线观看| 日韩有码视频在线| 日韩在线观看视频免费| 国产精品白嫩美女在线观看| 成人av色在线观看| 欧美一区亚洲一区| 国产精品va在线播放我和闺蜜| 一本大道久久加勒比香蕉| 欧美激情女人20p| 亚洲网站在线看| 日本欧美国产在线| 美女av一区二区三区| 日韩欧美a级成人黄色| 亚洲精品一区二三区不卡| www欧美日韩| 日韩激情在线视频| 在线播放日韩av| 亚洲最大成人在线| 欧美日韩亚洲视频一区| 亚洲国产一区自拍| 欧美日韩国产在线播放| 97成人精品视频在线观看| 成人网在线免费观看| 66m—66摸成人免费视频| xvideos成人免费中文版| 搡老女人一区二区三区视频tv| 欧美自拍视频在线观看| 精品国产乱码久久久久久虫虫漫画| 亚洲毛片在线免费观看| 色哟哟网站入口亚洲精品| 日本久久久a级免费| 亚洲黄色www| 国产中文字幕亚洲| 亚洲欧洲在线看| 亚洲一区二区三区四区视频| 欧美裸体xxxx极品少妇| 欧美精品在线网站| 精品国产福利视频| 一本大道香蕉久在线播放29| 国产精品入口福利| 国产激情999| 青青久久av北条麻妃黑人| 久久激情视频久久| 91九色综合久久| 国产精品久久久久久久电影|