DataGridView效果图:
EXCEL效果图:
代码如下:
首先要引入EPPlus包 可以使用命令行来安装 Install-Package EPPlus 也可以使用NUGet搜索EPPlus来安装
public Homes(){InitializeComponent();ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial; // 设置EPPlus为非商业使用}
#region 导出Excelprivate void button2_Click(object sender, EventArgs e){// 创建一个SaveFileDialog实例SaveFileDialog saveFileDialog = new SaveFileDialog();saveFileDialog.Filter = "Excel文件 (*.xlsx)|*.xlsx";saveFileDialog.FileName = $"{DateTime.Now.ToString("yyyyMMdd_HHmmss")}.xlsx"; // 设置默认文件名为当前日期时间// 如果用户点击了“保存”按钮,则保存文件if (saveFileDialog.ShowDialog() == DialogResult.OK){string filePath = saveFileDialog.FileName;FileInfo excelFile = new FileInfo(filePath);// 创建一个ExcelPackage对象using (ExcelPackage excelPackage = new ExcelPackage()){// 添加一个工作表ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("员工表");// 将DataGridView的列标题写入Excel第一行for (int i = 0; i < dataGridView1.Columns.Count; i++){worksheet.Cells[1, i + 1].Value = dataGridView1.Columns[i].HeaderText;}// 将DataGridView的内容写入Excelfor (int row = 0; row < dataGridView1.Rows.Count - 1; row++) // 不包括合计行{for (int col = 0; col < dataGridView1.Columns.Count; col++){worksheet.Cells[row + 2, col + 1].Value = dataGridView1.Rows[row].Cells[col].Value;}}// 保存Excel文件excelPackage.SaveAs(excelFile);// MessageBox.Show("文件保存成功!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);}}NMessage("导出数据成功", NotificationType.Info);}#endregion