首页 > 编程语言 >C# EPPlus 导出excel

C# EPPlus 导出excel

时间:2024-12-30 09:11:27浏览次数:5  
标签:Count C# EPPlus Cells excel gridList saveFileDialog 导出 worksheet

C# Winform 中DataGridView数据集通过EPPlus导出excel到本地

 

/// <summary>
/// 查询数据导出
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnGridExport_Click(object sender, EventArgs e)
{
if (gridList.Rows.Count > 0)
{
using (SaveFileDialog saveFileDialog = new SaveFileDialog())
{
saveFileDialog.Filter = "Excel Files|*.xlsx";
saveFileDialog.Title = "Save an Excel File";

if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = saveFileDialog.FileName;
ExportDataGridViewToExcel(filePath);
}
}
}
else
{
MessageBox.Show("当前没有需要导出的数据");
}
}
private void ExportDataGridViewToExcel(string filePath)
{
// 设置 EPPlus 的许可上下文
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

using (ExcelPackage package = new ExcelPackage())
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Data");

// 添加列标题
for (int i = 0; i < gridList.Columns.Count; i++)
{
worksheet.Cells[1, i + 1].Value = gridList.Columns[i].HeaderText;
}

// 添加行数据
for (int i = 0; i < gridList.Rows.Count; i++)
{
for (int j = 0; j < gridList.Columns.Count; j++)
{
worksheet.Cells[i + 2, j + 1].Value = gridList.Rows[i].Cells[j].Value;
}
}

// 自动调整列宽
worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();

// 保存到文件
using (FileStream stream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
package.SaveAs(stream);
}
}

MessageBox.Show("导出成功!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

标签:Count,C#,EPPlus,Cells,excel,gridList,saveFileDialog,导出,worksheet
From: https://www.cnblogs.com/ff-king/p/18640009

相关文章

  • 使用canvas制作一副手套
    在前端开发中,使用HTML的<canvas>元素来制作一副手套是一个有趣且具有挑战性的任务。以下是一个简单的步骤指南,帮助你开始这个项目:1.设置HTML结构首先,你需要在HTML文件中创建一个<canvas>元素。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><meta......
  • 攻克LeetCode 1055:探寻形成字符串的最短路径
    一、题目引入在LeetCode的题库中,1055.形成字符串的最短路径这道题饶有趣味且充满挑战。简单来说,对于给定的源字符串source和目标字符串target,我们要找出源字符串中能通过串联形成目标字符串的子序列的最小数量。如果无法通过串联源字符串中的子序列来构造目标字符串,那就得......
  • 你平时有收藏哪些常用的css代码片断?
    在前端开发中,CSS代码片段可以极大地提高我们的工作效率。以下是一些我常用的CSS代码片段:清除默认样式:用于消除浏览器默认样式的影响,确保页面在不同浏览器中具有一致的外观。*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}body{font......
  • 使用canvas制作下雪的特效
    在前端开发中,你可以使用HTML的<canvas>元素和JavaScript来制作下雪的特效。以下是一个简单的示例,展示了如何创建这种效果:HTML结构:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="widt......
  • enq: US - contention等待时间
    1.1问题现象 应用反馈业务执行SQL响应超时,需要数据库排除DB是否存在问题,创建AWR观察到topevent新增enq:US-contention ???1.2问题分析1)DBTime指标2020-11-1217:3018:00DBtime3310.192020-11-1218:0018:30......
  • springboot-data-jdbc优劣
    经过一段时间对springboot-data-jdbc的使用,总结了一下几点:优点:通过配置外键关联,在保存一个实体类的情况下,会自动保存对应的外键信息(比如上图实体类如果设置了legItems和orderDetails的值,则会保存对应的数据)通过配置外键关联,在查询一个实体类的情况下,会自动查询出外键关联的信......
  • 解密Prompt45. 再探LLM Scalable Oversight -辩论、博弈哪家强
    之前我们已经介绍过几个针对ScalableOversight的解法,也就是当模型能力在部分领域超越人类标注者后,我们该如何继续为模型提供监督信号,包括持续提升Verifier的能力,辅助人类提供监督信号:self-Critic持续提升模型在弱监督下的泛化性:weak-to-strongGeneralization以上两个方向相......
  • TCP/IP四层模型与OSI参考模型
      TCP/IP四层模型:1.链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡2.网络层(互联网层):处理分组在网络中的活动,比如分组的选路。3.运输层:主要为两台主机上的应用提供端到端的通信。4.应用层:负责处理特定的应用程序细节。  假设......
  • 欧拉OpenEuler下SSH或SCP免密连接配置方法
    以下操作均在本地服务器上进行:一、生成公钥和私钥ssh-keygen-trsa二、将公钥复制到远程服务器ssh-copy-idusername@remote_server三、配置免密登录sshusername@remote_server四、虽然免密登录提高了工作效率和安全性,但也有一些注意事项需要牢记。首先,务必保护好你......
  • 每天40分玩转Django:Django Channels
    DjangoChannels一、今日学习内容概览知识模块重点内容难度系数WebSocket基础WebSocket协议、连接建立、消息传输★★★★☆消息路由URL路由配置、消费者编写、消息处理★★★★☆Channels配置项目配置、ASGI应用、ChannelLayers★★★☆☆二、WebSocket基础1.环境配......