Click here to Skip to main content
13,045,019 members (44,788 online)
Rate this:
Please Sign up or sign in to vote.
See more:

I need an opinion again, I have paged datagridview and I need to export data from either desired page or filtered data, that means more pages to excel or csv or whatever, but fast, cause I have many records. I have done with excel in previous of my posts here and it works but it is very slow, how to speed things up

this code works but very very very slow, i fa I need to export say 1000 rows ahhhhh man I can go to dinner , come back and it still isn't finished

Microsoft.Office.Interop.Excel._Application app = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = app.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
app.Visible = true;
worksheet = workbook.Sheets["Sheet1"];
worksheet = workbook.ActiveSheet;
for (int i = 1; i < dg1.Columns.Count + 1; i++)
   worksheet.Cells[1, i] = dg1.Columns[i - 1].HeaderText;
for (int i = 0; i < dg1.Rows.Count - 1; i++)
   for (int j = 0; j < dg1.Columns.Count; j++)
      worksheet.Cells[i + 2, j + 1] = dg1.Rows[i].Cells[j].Value.ToString();

[edit]code block added[/edit]
Posted 17-Nov-12 8:58am
Updated 17-Nov-12 9:05am
Lacy00 19-Nov-12 0:06am
If you use Microsoft library, you will get fast reply in msdn forum.
jk0391 27-May-15 15:47pm
But he's asking here...
F-ES Sitecore 29-May-15 5:18am
Look into the Excel ODBC driver.

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 2


you need to set all values at once by using Excel.Range, like this:

// Assuming using Excel = Microsoft.Office.Interop.Excel;
String[,] table = ... // 2D String array of datagrid cells
Excel.Range cell1 = null;
Excel.Range cell2 = null;
Excel.Range range = null;
	// Get range
	cell1 = (Excel.Range)worksheet.Cells[1, 1];
	cell2 = (Excel.Range)worksheet.Cells[numRows, numCols];
	range = worksheet.Range[cell1, cell2];
	// Set range value
	range.Value2 = table;
	// Don't forget to destroy Excel COM objects.

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

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web02 | 2.8.170713.1 | Last Updated 29 May 2015
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100