DataSet匯出CSV格式(ASP.NET,C#) (轉)

worldblog發表於2008-01-06
DataSet匯出CSV格式(ASP.NET,C#) (轉)[@more@]
DataSet匯出CSV格式(,)
 
作者:Not
:notking@hot.com
:nots@sohu.com
 
本文引用下面的 類庫名稱空間:
System.Data;
System..UI.WebControls;
 
概要
本文解決將DataSet匯出到CSV格式問題、將DataGrid中的資料匯出到CSV格式問題
 
匯出DataSet所有的列到CSV格式
遍歷DataSet的Tables
遍歷Table的Rows
遍歷Rows的Columns
 
程式碼
///
/// 將DataSet匯出成CSV格式
///

/// DataSet
/// CSV字串資料
public static string ExportCSV(DataSet ds)
{
 string data = "";
 //data = ds.DataSetName + "n";
 
 foreach(DataTable tb in ds.Tables)
 {
 data += tb.TableName + "n";
 
 //寫出列名
 foreach (DataColumn column in tb.Columns)
 {
 data += column.ColumnName + ",";
 }
 data += "n";
 
 //寫出資料
 foreach (DataRow row in tb.Rows)
 {
 foreach (DataColumn column in tb.Columns)
 {
 data += row[column].ToString() + ",";
 }
 data += "n";
 }
 data += "n";
 }
 
 return data;
}
 
DataSet與DataGrid問題
一般情況下我們用DataGrid顯示DataSet時,只顯示我們需要的列,並不顯示DataSet所有的列,所以匯出成CSV格式的時候可能只需要匯出DataGrid中的列。
 
本文解決方法:
將DataSet中需要匯出的列做上標記,在匯出時只將有標記的列匯出。
 
程式碼
///
/// 標記DataColumn為接受匯出的
///

/// DataColumn
public static void SetExport(DataColumn column)
{
 if (column != null)
 {
 if (column.ExtendedProperties["IsExport"] == null)
 column.ExtendedProperties.Add("IsExport", "true");
 else
 column.ExtendedProperties["IsExport"] = "true";
 }
}
 
///
/// 標記DataTable中的一些列為接受匯出的
///

/// DataTable
///
public static void SetExport(DataTable tb,params string[] columns)
{
 foreach(string column in columns)
 {
 SetExport(tb.Columns[column]);
 }
}
 
///
/// 標記DataTable中的一些列為接受匯出的
///

/// DataTable
/// DataGrid的列
public static void SetExport(DataTable tb,DataGridColumnCollection columns)
{
 foreach(DataGridColumn column in columns)
 {
 if (column.GetType().Name == "BoundColumn" || column.GetType().Name == "HyinkColumn" || column.GetType().Name == "TemplateColumn")
 SetExport(tb.Columns[column.HeaderText]);
 }
}
 
///
/// 判斷DataColumn是否為接受匯出的
///

/// DataColumn
/// bool型的結果
public static bool IsExport(DataColumn column)
{
 if (column.ExtendedProperties["IsExport"] != null && column.ExtendedProperties["IsExport"].ToString().Trim().ToLower() == "true")
 return true;
 else
 return false;
}
 

使用示例:
Export.SetExport(ds.供應商列表檢視,dg.Columns);
 
string data = Export.ExportCSV(ds);
 
string temp = string.Format("attachment;filename={0}","ExportData.csv");
Response.ClearHeaders();
Response.AppendHeader("Content-disposition", temp);
Response.Write(data);
Response.End();

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-996726/,如需轉載,請註明出處,否則將追究法律責任。

上一篇: C++ STL簡介 (轉)
DataSet匯出CSV格式(ASP.NET,C#) (轉)
請登入後發表評論 登入
全部評論

相關文章