Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I assume you know how to export a DataTable to excel(you can use existing libraries like Aspose Cells or using Interop), so I just write the code for creating that DataTable:</p> <pre><code>private DataTable CreateDataTableFromSelectedRows() { var dtToExport = new DataTable(); foreach(DataGridViewRow row in dataGridView1.SelectedRows) { var dr = row.DataBoundItem as DataRow; dtToExport.ImportRow(dr); } return dtToExport; } </code></pre> <p>If you use <a href="http://www.aspose.com/.net/excel-component.aspx" rel="nofollow">Aspose cells</a> it would simply become:</p> <pre><code>private void btnExportSelectedRows(object sender, EventArgs e) { string filePath = "C:\\test.xlsx"; Aspose.Cells.Workbook wb = new Aspose.Cells.Workbook(); wb.FileFormat = Aspose.Cells.FileFormatType.Xlsx; Worksheet sheet = wb.Worksheets[0]; DataTable dt = CreateDataTableFromSelectedRows(); sheet.Cells.ImportDataTable(dt, true, "A1"); wb.Save(filePath); } </code></pre> <p>But by using the export code you provide it all become: (I removed existing comments on the code for brevity)</p> <pre><code>private void button1_Click_1(object sender, EventArgs e) { 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; worksheet.Name = "Exported from gridview"; for(int i=1;i&lt;dataGridView1.Columns.Count+1;i++) { worksheet.Cells[1, i] = dataGridView1.Columns[i-1].HeaderText; } // It's the part which we are interested in // we just need to change dataGridView1.Rows to dataGridView1.SelectedRows for (int i=0; i &lt; dataGridView1.SelectedRows.Count ; i++) { for(int j=0;j&lt;dataGridView1.Columns.Count;j++) { worksheet.Cells[i + 2, j + 1] = dataGridView1.SelectedRows[i].Cells[j].Value.ToString(); } } workbook.SaveAs("c:\\output.xls",Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive , Type.Missing, Type.Missing, Type.Missing, Type.Missing); app.Quit(); } </code></pre> <p>I guess it would do the trick.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload