65.9K
CodeProject 正在变化。 阅读更多。
Home

从 DataGridView 导出到 Excel

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (13投票s)

2008 年 10 月 15 日

CPOL

1分钟阅读

viewsIcon

157662

downloadIcon

10165

一种将数据从 DataGridView 导出到原生 Excel (xls) 的方法,支持任何数据源

引言

在WinForm应用程序中,经常会遇到将DataGridView中的数据导出到Excel的问题,有一些商业解决方案可以解决这个问题。本文描述了一种简单、通用且免费的方法来实现。

背景  

导出到Excel的工作是通过“Office XP Primary Interop Assemblies (PIAs)”完成的。

首先,从datagridview的datasource中获取数据,进行格式化,然后通过Excel COM Interiop导出到excel文件。

DataGridView的数据源可以是:

  • 实体ArrayList
  • 至少包含1个datatable的Dataset
  • Datatable

在导出到excel之前,数据应该存储在DataTable中。如果DataGridView的DataSource是ArrayList,则使用ArrayListToDataTable方法将ArrayList转换为DataTable。

		ArrayList arr = (ArrayList)dataGridView.DataSource;
               dt = ArrayListToDataTable(arr);

一旦数据存储在datatable中,就使用dataTable2Excel方法导出到excel。

		dataTable2Excel(dt, dataGridView, pFullPath_toExport, nameSheet);

 

使用代码

您只需要将以下2个文件复制到您的项目中:

  • ExportToExcel.cs
  • UC_DataGridView.cs
  • UC_DataGridView.Designer.cs

在您的项目中使用的DataGridView,并使用以下代码导出到excel:

Tools.ExportToExcel.ExportToExcel exp = new Tools.ExportToExcel.ExportToExcel(); 
exp.dataGridView2Excel(this.dgvDataToExport, path, "NameSheet"); 

兴趣点 

请注意,Excel文件中的标题是从DataGridView标题获取的,而不是从DataTable名称列获取的。

存在一个错误,列标题导出不正确,我正在修复它。

历史 

2008/10/15 首次发布

© . All rights reserved.