首页 > 编程语言 >c# winform 以excel形式导出表格中的数据

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

时间:2024-09-23 15:23:09浏览次数:8  
标签:Count c# worksheet Cells excel int dgv Columns winform

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(); // 保存更改
                }
            }

标签:Count,c#,worksheet,Cells,excel,int,dgv,Columns,winform
From: https://blog.csdn.net/Sun11111111no/article/details/142459305

相关文章

  • 南沙C++信奥老师解一本通题 1281:最长上升子序列
    ​ 【题目描述】一个数的序列bibi,当b1<b2<...<bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1,a2,...,aN),我们可以得到一些上升的子序列(ai1,ai2,...,aiK),这里1≤i1<i2<...<iK≤N。比如,对于序列(1,7,3,5,9,4,8),有它的一些上升子序列,如(1,7),(3,4,8)等等。这些子序列......
  • 天若OCR文字识别本地版
    下载地址:天若OCR文字识别本地版-v1.3.9-x64.zip1、解压下载包,将【天若OCR文字识别.exe】发送到桌面快捷方式2、点击桌面图标启动3、按F4或双击要识别的文字,以下是我识别的图片文字......
  • C++ string
    在C++中,std::string类是处理字符串的主要工具。它提供了丰富的功能和方法来简化字符串操作,使得开发者可以更加方便地进行文本数据的处理。构造函数std::string类有多种构造函数供用户选择:使用C风格字符串初始化:string(constchar*s);使用指定字符重复初始化:string(size_......
  • 框架漏洞(5-rce s2-057 CVE-2017-8046 CVE-2018-1273 Shiro-550)
    5-rce步骤一:环境部署cdvulhub/thinkphp/5-rcedocker-composeup-d步骤二:输入系统命令: whoami/index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami步骤三:写入webshell到1.php/index.php?s=index/think\ap......
  • 【高手切磋】Travis CI 详述
    TravisCI(ContinuousIntegration)是一个流行的持续集成服务,用于自动化软件项目的构建、测试和部署过程。它支持多种编程语言和框架,并且可以与GitHub和Bitbucket等版本控制系统无缝集成。TravisCI提供了免费的开源项目计划以及付费的企业版。主要特性多语言支持:......
  • 【高手切磋】Chrome DevTools 详述
    ChromeDevTools是GoogleChrome浏览器内置的一套强大的开发者工具,用于调试和优化网页。它提供了丰富的功能,帮助开发者检查和修改HTML、CSS和JavaScript代码,分析性能问题,调试网络请求,以及进行其他各种开发任务。主要特性元素面板(ElementsPanel):查看和编辑页面......
  • MGMT42110: Marketing Analytics
    MGMT42110:MarketingAnalyticsHomework2(7points)Instructions1. Download“42110_hw2_template.R”andfillinthecommandwherevernecessarytocompletethehomework.2. Copyandpasteyourcodedirectlyintothisdocumentwheneverasked.Youdonotne......
  • CF1270H Number of Components 题解
    Description给一个长度为\(n\)的数组\(a\),\(a\)中的元素两两不同。对于每个数对\((i,j)(i<j)\),若\(a_i<a_j\),则让\(i\)向\(j\)连一条边。求图中连通块个数。支持\(q\)次修改数组某个位置的值,每次修改后输出图中连通块个数。\(n,q\le5\times10^5,1\lea_i\le10^......
  • Centos7中配置vsftpd对接LDAP(域控)
    背景与需求公司内部使用ftp进行文件共享,之前使用的是公共账号,导致账号密码到处传播,权限难以管控。因此,计划将FTP服务对接LDAP(公司内部的域控),实现用个人域账号登录。具体需求域账号登录未经授权的,可以登录FTP,但无权限访问(共享的)内容实施环境描述操作系统#lsb_release-......
  • Rocksdb 7.0.0 ~ 7.10.2 重要版本特性
    7.9.0(2022-11-21)现在可以提供对宽列数据模型的基本支持。可以使用API存储宽列实体PutEntity,并使用GetEntity和迭代器的新columnsAPI进行检索。为了兼容,经典APIGet和MultiGet以及迭代器的valueAPI返回宽列实体的匿名默认列的值;此外,GetEntity和迭代器的APIcolumns以仅具......