DataGridView效果图:
EXCEL效果图:
代码如下:
首先要引入EPPlus包 可以使用命令行来安装 Install-Package EPPlus 也可以使用NUGet搜索EPPlus来安装
public Homes()
{
InitializeComponent();
ExcelPackage.LicenseContext = OfficeOpenXml.LicenseContext.NonCommercial; // 设置EPPlus为非商业使用
}
#region 导出Excel
private 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的内容写入Excel
for (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