C#导出数据到导出数据到CSV文件的通用类实例文件的通用类实例
主要介绍了C#导出数据到CSV文件的通用类,将C#操作CSV文件的常用技巧封装进一个通用类中以方便调用,非常具有实用价值,需要的朋友可
以参考下
本文实例讲述了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";
评论0