1.将datagridview可见行导入到桌面的Excel模板中
时间: 2023-11-14 18:05:01 浏览: 129
您可以使用以下代码实现将DataGridView中的可见行导出到Excel模板中:
```csharp
private void ExportToExcel(DataGridView dgv)
{
// 创建Excel对象
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Visible = true;
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Add(System.Reflection.Missing.Value);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Sheets[1];
// 写入DataGridView的列标题
for (int i = 0; i < dgv.ColumnCount; i++)
{
worksheet.Cells[1, i + 1] = dgv.Columns[i].HeaderText;
}
// 写入DataGridView的可见行
int rowIndex = 2;
foreach (DataGridViewRow row in dgv.Rows)
{
if (row.Visible)
{
for (int i = 0; i < dgv.ColumnCount; i++)
{
worksheet.Cells[rowIndex, i + 1] = row.Cells[i].Value;
}
rowIndex++;
}
}
// 保存Excel文件
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel文件|*.xlsx";
saveFileDialog.Title = "保存Excel文件";
saveFileDialog.ShowDialog();
if (saveFileDialog.FileName != "")
{
workbook.SaveAs(saveFileDialog.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlOpenXMLWorkbook, System.Reflection.Missing.Value,
System.Reflection.Missing.Value, false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange,
Microsoft.Office.Interop.Excel.XlSaveConflictResolution.xlUserResolution, true, System.Reflection.Missing.Value, System.Reflection.Missing.Value, System.Reflection.Missing.Value);
}
}
```
在上述代码中,我们首先创建了一个Excel对象。然后,我们在Excel中创建了一个工作簿和一个工作表,并将DataGridView的列标题写入工作表中。接下来,我们循环遍历DataGridView的每一行,如果该行可见,则将该行数据写入Excel中。最后,我们使用SaveFileDialog保存Excel文件。
您可以在需要导出DataGridView数据的地方调用此方法,例如在按钮的Click事件中。调用方法时,将DataGridView作为参数传递给该方法即可:
```csharp
private void btnExport_Click(object sender, EventArgs e)
{
ExportToExcel(dataGridView1);
}
```
希望这可以帮助您将DataGridView的可见行导出到Excel模板中。
阅读全文