将所选单元格从datagridview导出到excel

时间:2012-09-27 07:49:15

标签: c# excel interop

有人能说出如何将所选单元格从datagridview导出到excel吗?选择应通过单元格单击事件,并在单击按钮时将其导出到Excel文件。任何人都可以帮助我..

2 个答案:

答案 0 :(得分:2)

这应该有效:

using Excel = Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

var rows = dataGridView1.Rows.Count;
var columns = dataGridView1.Columns.Count;

var dataAsObjectArray = new object[rows,columns];

for (int i = 0; i < rows; i++)
{
    for (int j = 0; j < columns; j++)
    {
        dataAsObjectArray[i, j] = dataGridView1.Rows[i].Cells[j];
    }
}

Excel.Application application = new Excel.Application();
Excel.Workbook workbook = application.Workbooks.Add();
Excel.Worksheet worksheet = workbook.Sheets[1];

Excel.Range range  = worksheet.Range[rows, columns];
range.Value = dataAsObjectArray;

workbook.SaveAs(@"C:\whatever.xlsx");
workbook.Close();

Marshal.ReleaseComObject(application);

答案 1 :(得分:0)

您还应该查看EPPlus 它是一个开源的.net库,可以使用Open Office Xml格式读写Excel 2007/2010文件。但是,您无法读取/写入.xls文件。 我仍然比Microsoft.Office.Interop.Excel。

更喜欢它