Click here to Skip to main content
15,881,852 members
Articles / Desktop Programming / Win32
Article

Excel export from DatagridView

Rate me:
Please Sign up or sign in to vote.
4.00/5 (14 votes)
15 Oct 2008CPOL1 min read 154.1K   10.1K   74   27
A way to export data to native excel (xls) from a Datagridview with any data source

Introduction

A very common problem in winform applications occurs when data should be exported from DatagridView to Excel, there's some commercial workarounds to solve this problem. This article describe a simple versatile and free way to do.

Background  

The work to exporting to Excel is made by "Office XP Primary Interop Assemblies (PIAs)"

Initially, the data is obtained from datagridview's datasource, formated and then exported to a excel file throw Excel COM Interiop. 

The Datagridview datasource could be :

  • ArrayList of Entities 
  • Dataset with at least 1 datatable
  • Datatable

Data should be stored in a DataTable before beign exported to excel, if DataGridView's DataSource is an ArrayList, then the ArrayList is converted to a DataTable using the method ArrayListToDataTable

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

 Once the data is stored in the datatable is exported to excel using the method dataTable2Excel

dataTable2Excel(dt, dataGridView, pFullPath_toExport, nameSheet);

 

Using the code

You should only copy the following 2 files to your project 

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

Use the DataGridView in you project and export to excel using the next code

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

Points of Interest 

Please note that the titles in excel file was obtained from DataGridView headers, not from DataTable name columns. 

There's a bug, titles of columns are not exported correct, i am working on it. 

History 

15/10/2008 First Release

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
Peru Peru
Kevin Diaz is an electrical engineer by UNI in Lima, Peru.

He work developing projects for electrical industry.

Comments and Discussions

 
GeneralMy vote of 4 Pin
yichangzyh4-Jan-12 0:26
yichangzyh4-Jan-12 0:26 
GeneralDatagrid jsp - Excel and PDF Pin
vsuriyaprakash15-Feb-11 22:15
vsuriyaprakash15-Feb-11 22:15 
GeneralMy vote of 2 Pin
lester55527-Nov-10 0:09
lester55527-Nov-10 0:09 
boolshit
QuestionIs there a way to Export it without using the Microsoft.Office.Interop.Excel.dll and Microsoft.Office.Interop.Word.dll? Pin
Bigdeak14-Jun-10 4:45
Bigdeak14-Jun-10 4:45 
AnswerMessage Closed Pin
16-Aug-10 18:50
RyanALEX16-Aug-10 18:50 
AnswerRe: Is there a way to Export it without using the Microsoft.Office.Interop.Excel.dll and Microsoft.Office.Interop.Word.dll? Pin
CikaPero10-Apr-11 22:31
CikaPero10-Apr-11 22:31 
QuestionWindows Vista problem ? Pin
Member 152355921-Aug-09 14:24
Member 152355921-Aug-09 14:24 
Generalwork with unicode(UT-8) Pin
truong17-Jun-09 21:04
truong17-Jun-09 21:04 
QuestionHow to use with MS Office 2003 Pin
Delfy_Coltech24-Mar-09 4:14
Delfy_Coltech24-Mar-09 4:14 
GeneralExcel saves, but no data Pin
bantar7615-Feb-09 16:10
bantar7615-Feb-09 16:10 
GeneralRe: Excel saves, but no data Pin
kevinuni15-Feb-09 16:21
kevinuni15-Feb-09 16:21 
GeneralRe: Excel saves, but no data Pin
bantar7615-Feb-09 17:32
bantar7615-Feb-09 17:32 
GeneralRe: Excel saves, but no data Pin
bantar7616-Feb-09 16:10
bantar7616-Feb-09 16:10 
GeneralRe: Excel saves, but no data Pin
akarimov23-Nov-11 5:39
akarimov23-Nov-11 5:39 
Generalerror messeage. Pin
igomel4-Jan-09 19:34
igomel4-Jan-09 19:34 
GeneralRe: error messeage. Pin
kevinuni4-Jan-09 21:29
kevinuni4-Jan-09 21:29 
GeneralHelp me! Pin
tiencongaiocon11-Dec-08 22:58
tiencongaiocon11-Dec-08 22:58 
GeneralRe: Help me! Pin
kevinuni15-Dec-08 9:45
kevinuni15-Dec-08 9:45 
Questionunicode support? Pin
Ng. Anh Vu22-Nov-08 5:38
Ng. Anh Vu22-Nov-08 5:38 
GeneralHi good work Pin
Member 46241699-Nov-08 0:34
Member 46241699-Nov-08 0:34 
GeneralRe: Hi good work Pin
kevinuni20-Nov-08 10:19
kevinuni20-Nov-08 10:19 
GeneralRe: Hi good work Pin
kevinuni20-Nov-08 10:21
kevinuni20-Nov-08 10:21 
GeneralHi Pin
taher khiari28-Oct-08 1:41
taher khiari28-Oct-08 1:41 
GeneralRe: Hi Pin
kevinuni29-Oct-08 6:00
kevinuni29-Oct-08 6:00 
GeneralYou've cut my work time in half! Pin
Brent Maxwell23-Oct-08 14:19
Brent Maxwell23-Oct-08 14:19 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.