这里记录一下将winforms展示的datagridview,导出或保存为excel文件。
这里说一下环境、版本信息:
win系统:win11
框架:winforms
依赖:Microsoft.Office.Interop.Excel
.net:8.0.401
.net framework: 4.8
DataGridView对象为dataGridView1,然后添加一个按钮,绑定事件btnConfirm即可。
private void btnConfirm(object sender, EventArgs e)
{
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
if (excelApp == null)
{
MessageBox.Show("无法创建Excel,您可能需要安装Excel");
return;
}
// 创建excel工作薄
Workbook workBook = excelApp.Workbooks.Add(Type.Missing);
Worksheet workSheet = null;
// 创建工作表
workSheet = workBook.Sheets["Sheet1"];
workSheet = workBook.ActiveSheet;
// 表头
Range headerRow = workSheet.Rows[1];
headerRow.Cells[1, 1] = "文件路径";
headerRow.Cells[1, 2] = "文件名";
// 表头格式
headerRow.Font.Bold = true;
headerRow.Interior.Color = ColorTranslator.ToOle(Color.LightBlue);
// 将DataGridView表格内数据复制到excel工作表
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
workSheet.Cells[i + 2, j + 1] = dataGridView1.Rows[i].Cells[j].Value;
}
}
// 导出到excel文件
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel Workbook (*.xlsx)|*.xlsx|Excel 97-2003 Workbook (*.xls)|*.xls";
saveFileDialog.Title = "保存文件名称到Excel";
saveFileDialog.ShowDialog();
if (saveFileDialog.FileName != "")
{
try
{
workBook.SaveAs(saveFileDialog.FileName);
workBook.Close(false);
excelApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(workSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workBook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp);
workSheet = null;
workBook = null;
excelApp = null;
MessageBox.Show("Excel文件已保存到:" + saveFileDialog.FileName);
}
catch (Exception ex)
{
MessageBox.Show("保存文件名称到Excel失败,请稍后重试。" + ex.Message);
}
}
}
记录问题也是一种修行。
欢迎关注微信公众号,你的资源可变现:【乐知付加密平台】
欢迎关注微信公众号,这里记录博主的创业之旅:【程序员写书】
一起学习,一起进步。