`
dzgwt2004
  • 浏览: 167804 次
  • 来自: 浙江杭州
社区版块
存档分类
最新评论

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

    博客分类:
  • C#
阅读更多
DataSet导出CSV格式(ASP.NET,C#)

已经有了几篇完备的SQL Server查询的结果集导出为Excel的技术文章:

http://www.cnblogs.com/meyer/archive/2004/10/18/6977.html

http://dev.csdn.net/develop/article/18/18623.shtm

下面是导出为CSV格式的代码:

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

本文引用下面的 Microsoft .NET 框架类库命名空间:
System.Data;
System.Web.UI.WebControls;

概要
本文解决将DataSet导出到CSV格式问题、将DataGrid中的数据导出到CSV格式问题

导出DataSet所有的列到CSV格式
遍历DataSet的Tables
遍历Table的Rows
遍历Rows的Columns

代码
/// <summary>
/// 将DataSet导出成CSV格式
/// </summary>
/// <param name="ds">DataSet</param>
/// <returns>CSV字符串数据</returns>
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中需要导出的列做上标记,在导出时只将有标记的列导出。

代码
/// <summary>
/// 标记DataColumn为接受导出的
/// </summary>
/// <param name="column">DataColumn</param>
public static void SetExport(DataColumn column)
{
if (column != null)
{
if (column.ExtendedProperties["IsExport"] == null)
column.ExtendedProperties.Add("IsExport", "true";
else
column.ExtendedProperties["IsExport"] = "true";
}
}

/// <summary>
/// 标记DataTable中的一些列为接受导出的
/// </summary>
/// <param name="tb">DataTable</param>
/// <param name="columns">列</param>
public static void SetExport(DataTable tb,params string[] columns)
{
foreach(string column in columns)
{
SetExport(tb.Columns[column]);
}
}

/// <summary>
/// 标记DataTable中的一些列为接受导出的
/// </summary>
/// <param name="tb">DataTable</param>
/// <param name="columns">DataGrid的列</param>
public static void SetExport(DataTable tb,DataGridColumnCollection columns)
{
foreach(DataGridColumn column in columns)
{
if (column.GetType().Name == "BoundColumn" || column.GetType().Name == "HyperLinkColumn" || column.GetType().Name == "TemplateColumn")
SetExport(tb.Columns[column.HeaderText]);
}
}

/// <summary>
/// 判断DataColumn是否为接受导出的
/// </summary>
/// <param name="column">DataColumn</param>
/// <returns>bool型的结果</returns>
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();
分享到:
评论

相关推荐

    DataSet导出CSV格式

    在 ASP.NET 和 C# 中,我们可以使用 DataSet 的Tables 属性来遍历所有的数据表,然后使用 foreach 语句遍历每个数据表中的行和列。最后,我们可以使用 string 类型的变量来存储导出的数据。 在本文中,我们提供了一...

    ASP.NET用DataSet导出到Excel的方法

    ***使用DataSet导出数据到Excel的详细方法涉及.NET框架下的数据操作和文件处理技术。首先,我们要明确DataSet在.NET中的作用,它是一个内存中的数据存储结构,可以包含一个或多个DataTable,用于存储数据以及表与表...

    CSV格式导入导出到sql数据库asp.net

    总结来说,CSV导入导出到SQL数据库是ASP.NET开发中的常见任务,通过理解CSV文件格式和掌握数据库操作技巧,可以轻松实现数据的双向交换。在实际项目中,务必遵循良好的编程实践,保证代码的可读性和可维护性。

    用ASP.NET写的ACCESS数据库导入SqlServer方法

    2. **数据导出**:在ACCESS中,可以使用“导出”功能将数据保存为CSV或Excel格式。这将生成一个文件,可以被SQL Server读取并导入。 3. **编写SQL脚本**:在ASP.NET中,我们将使用ADO.NET,这是.NET框架的一部分,...

    ASP.NET(C#)导出数据到Excel工作薄.zip

    这个压缩包文件"ASP.NET(C#)导出数据到Excel工作薄.zip"提供了一种实现这一功能的方法,主要针对的是初学者,注释详细,易于理解。 在ASP.NET中导出数据到Excel,通常我们会用到Microsoft Office Interop库,但这...

    Asp.net数据下载到Word

    在描述中提到的"数据下载Word"是指从Asp.net应用程序中导出数据到Microsoft Word文档。这通常适用于需要用户保存或离线查看的数据,比如报表、表格或其他结构化信息。VS2010(Visual Studio 2010)是开发Asp.net应用...

    Asp.net版SqlManagement管理系统源码.zip

    4. 数据导入导出:系统可能支持从CSV、Excel等格式导入数据到数据库,或者将数据库数据导出为这些格式,便于数据迁移和备份。 5. 权限管理:系统可能具备角色和用户管理功能,可以设置不同用户的访问权限,确保数据...

    dataset

    以下是如何使用C#将`DataSet`导出为CSV格式的详细步骤: 1. **遍历DataSet的Tables**: 首先,我们需要遍历`DataSet`中的所有`DataTable`。每个`DataTable`代表一个单独的数据表,我们可以获取其名称并在CSV文件中...

    asp.netWEB程序设计.rar

    这通常通过OLEDB或ODBC驱动实现,使用DataSet或DataTable对象加载数据,并使用XML或者CSV格式进行导出。 标签中的“database”表明了数据库操作是这个压缩包的核心内容。在ASP.NET中,C#语言用于编写数据库查询和...

    DataGridExport

    `DataGridExport`项目的实现涉及到多方面的技术,包括但不限于C#编程、Asp.net Web Forms开发、数据操作、文件处理、格式转换以及错误处理等。通过学习和理解这个项目,开发者可以提升自己在Web应用开发中的技能,...

    C#水晶报

    **C# 水晶报表 (Crystal Reports) 在 ASP.NET 2.0 中的应用** 水晶报表(Crystal Reports)是一款强大的报告生成工具,尤其在.NET框架下,它为开发者提供了丰富的功能,用于创建、设计和展示复杂的业务报告。C#与...

    C# TXT输出从gridveiw导出TXT文档

    在C#编程环境中,开发人员经常需要将数据导出到不同的格式,如CSV、Excel或TXT等,以便用户可以方便地查看和分析。本篇主要介绍如何从GridView控件导出数据到TXT文本文件,这在Web应用中非常常见,特别是在处理大量...

    超值的软件资料(crm1.0,crm2.0,Excel导入导出.....)

    "DtocsvRtoDataset.rar"可能涉及数据转换技术,DTOS(Data Transfer Objects)常用于对象和数据之间的转换,CSV是常见的数据交换格式,而Dataset是.NET Framework中的数据容器。这个文件可能包含如何将数据从数据库...

    简单的试题管理系统C#

    7. **文件操作**:可能用于读写试题文件,例如CSV或XML格式,以便于导入导出试题。 8. **错误处理和调试**:使用try-catch语句处理异常,使用Visual Studio的调试工具进行代码调试。 9. **版本控制**:可能使用Git...

    Excel表格导入GridView

    在Web开发中,尤其是在ASP.NET应用中,经常需要处理各种格式的数据文件,如CSV、Excel等。这些数据文件的导入导出功能对于企业级应用程序来说至关重要。本篇将详细介绍如何在ASP.NET 2.0中实现将Excel表格数据导入到...

    ReportViewer 报表插件

    4. **导出功能**:报表可以直接导出为PDF、Excel、CSV等多种格式,方便数据的共享和进一步处理。 5. **打印支持**:用户可以直接从`ReportViewer`控件打印报表,或者设置打印选项。 6. **交互式功能**:如钻取...

Global site tag (gtag.js) - Google Analytics