c# winform 以excel形式导出表格中的数据

1.需要安装EPPlus插件

2.引入
using OfficeOpenXml;
using OfficeOpenXml.Style;
 

3.代码

public void ExportDataGridViewToExcel(DataGridView dgv, string filePath)
        {
            // 设置EPPlus的许可证上下文
            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
            // 检查文件是否存在
            if (!File.Exists(filePath))
            {
                // 文件不存在,创建一个新的Excel文件并写入信息
                package = new ExcelPackage();

                workbook = package.Workbook;
                worksheet = workbook.Worksheets.Add("Sheet1");

                // 写入表头
                for (int i = 0; i < dgv.Columns.Count; i++)
                    {
                        worksheet.Cells[1, i + 1].Value = dgv.Columns[i].HeaderText;
                        worksheet.Cells[1, i + 1].Style.Font.Bold = true;//行标题加粗
                }

                    // 写入行数据
                    for (int i = 0; i < dgv.Rows.Count; i++)
                    {
                        for (int j = 0; j < dgv.Columns.Count; j++)
                        {
                            worksheet.Cells[i + 2, j + 1].Value = dgv.Rows[i].Cells[j].Value?.ToString();
                        }
                    }

                    FileInfo fileInfo = new FileInfo(filePath);
                    package.SaveAs(fileInfo);
                }
             else
            {
                // 文件存在,打开并写入或覆盖信息
                package = new ExcelPackage(new FileInfo(filePath));
                workbook = package.Workbook;
                worksheet = workbook.Worksheets[0]; // 假设我们只操作第一个工作表

                    // 清除工作表内容
                    worksheet.Cells.Clear();

                    // 写入表头
                    for (int i = 0; i < dgv.Columns.Count; i++)
                    {
                        worksheet.Cells[1, i + 1].Value = dgv.Columns[i].HeaderText;
                        worksheet.Cells[1, i + 1].Style.Font.Bold = true;
                     }

                    // 写入行数据
                    for (int i = 0; i < dgv.Rows.Count; i++)
                    {
                        for (int j = 0; j < dgv.Columns.Count; j++)
                        {
                            worksheet.Cells[i + 2, j + 1].Value = dgv.Rows[i].Cells[j].Value?.ToString();
                        }
                    }

                    package.Save(); // 保存更改
                }
            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值