C#导出dataGridView数据

embedded/2025/2/25 1:54:54/

方法一:导出为CSV文件(简单快速)

优点:无需依赖库,但格式简单。

private void ExportToCSV(DataGridView dataGridView, string filePath)
{using (StreamWriter sw = new StreamWriter(filePath, false, Encoding.UTF8)){// 写入列头sw.WriteLine(string.Join(",", dataGridView.Columns.Cast<DataGridViewColumn>().Select(col => col.HeaderText)));// 写入数据行foreach (DataGridViewRow row in dataGridView.Rows){sw.WriteLine(string.Join(",", row.Cells.Cast<DataGridViewCell>().Select(cell => cell.Value?.ToString()?.Replace(",", ";") ?? "")));}}MessageBox.Show("导出成功!");
}

调用方法:

private void exportButton_Click(object sender, EventArgs e)
{try{SaveFileDialog saveDialog = new SaveFileDialog();saveDialog.Filter = "CSV文件|*.csv";if (saveDialog.ShowDialog() == DialogResult.OK){ExportToCSV(dataGridView1, saveDialog.FileName);}}catch (Exception exception){MessageBox.Show("导出失败!");}}

方法二:使用EPPlus库(推荐,无需安装Excel)

优点:无需安装Microsoft Excel,支持.xlsx格式,性能较好。
步骤

安装EPPlus NuGet包
在Visual Studio中,通过NuGet包管理器安装EPPlus

using OfficeOpenXml;
using System.IO;
using System.Windows.Forms;private void ExportToExcelWithEPPlus(DataGridView dataGridView, string filePath)
{// 检查数据是否为空if (dataGridView.Rows.Count == 0){MessageBox.Show("没有数据可导出!");return;}// 创建Excel包using (ExcelPackage excelPackage = new ExcelPackage()){ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet1");// 写入列头for (int i = 0; i < dataGridView.Columns.Count; i++){worksheet.Cells[1, i + 1].Value = dataGridView.Columns[i].HeaderText;}// 写入数据行for (int row = 0; row < dataGridView.Rows.Count; row++){for (int col = 0; col < dataGridView.Columns.Count; col++){object cellValue = dataGridView.Rows[row].Cells[col].Value;worksheet.Cells[row + 2, col + 1].Value = cellValue?.ToString() ?? "";}}// 自动调整列宽worksheet.Cells[worksheet.Dimension.Address].AutoFitColumns();// 保存文件FileInfo excelFile = new FileInfo(filePath);excelPackage.SaveAs(excelFile);}MessageBox.Show("导出成功!");
}

调用方法:

// 调用示例
private void btnExport_Click(object sender, EventArgs e)
{SaveFileDialog saveDialog = new SaveFileDialog();saveDialog.Filter = "Excel文件|*.xlsx";if (saveDialog.ShowDialog() == DialogResult.OK){ExportToExcelWithEPPlus(dataGridView1, saveDialog.FileName);}
}

http://www.ppmy.cn/embedded/164930.html

相关文章

臻识相机,华夏相机,芊熠车牌识别相机加密解密

臻识&#xff0c;华夏&#xff0c;芊熠这三种车牌识别相机解密我都试过了&#xff0c;可以正常解密成功&#xff0c;其它品牌我暂时没有测试。超级简单&#xff0c;免费的&#xff0c;白嫖无敌&#xff01; 流程&#xff1a; ①&#xff1a;先导出配置文件&#xff0c;例如我以…

安全面试4

文章目录 给的源码是ThinkPHP框架的话&#xff0c;审计起来和没有使用框架的有什么不同&#xff0c;从流程上或者从关注的点上有什么不同框架代码审计的流程无框架代码审计的流程 反序列的时候&#xff0c;unserialize()反序列一个字符串的时候&#xff0c;对象会有一些魔术方法…

从卡顿到丝滑:火山引擎DeepSeek-R1引领AI工具新体验

方舟大模型体验中心全新上线&#xff0c;免登录体验满血联网版Deep Seek R1 模型及豆包最新版模型:https://www.volcengine.com/experience/ark?utm_term202502dsinvite&acDSASUQY5&rcGO9H7M38 告别DeepSeek卡顿&#xff0c;探索火山引擎DeepSeek-R1的丝滑之旅 在A…

网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)

文章目录 PPP&#xff08;Point to Point Protocol&#xff0c;点对点协议&#xff0c;华为默认使用&#xff09;实验1&#xff1a;设置为pap模式实验2&#xff1a;设置为chap模式&#xff08;实验1的基础上&#xff09; 串口封装协议HDLC&#xff08;High-Level Data Link Con…

QT串口通信之二,实现单个温湿度传感器数据的采集(采用Qt-modbus实现)

接上 QT串口通信之一,实现单个温湿度传感器数据的采集 上述文章中用QSerialPort实现了温湿度传感器的采集,实际上比较麻烦的,因为需要自定义解析帧, 接下来,用Qt-modbus-封装度更高的协议,来实现温湿度的采集; #include "MainWindow.h" #include "ui_M…

RK Android11 WiFi模组 AIC8800 驱动移植调试记录

RK Android11 WiFi模组 AIC8800 驱动移植调试记录 作者&#xff1a;Witheart更新时间&#xff1a;20250221 概要&#xff1a;本文记录了 RK3568 平台上移植并调试 WiFi6 模组 AIC8800 的过程&#xff0c;涵盖 WiFi 和蓝牙驱动的适配与问题排查。 配置流程在另一篇文章&#x…

Day9,Hot100(图论)

图论 图论部分推荐 acm 模式&#xff0c;因为图的输入处理不一样 DFS&#xff0c;类似二叉树的递归遍历 BFS&#xff0c;类似二叉树的层次遍历 208. 实现 Trie (前缀树) 数据结构大概如下&#xff1a; 可以看成是 二十六叉树 &#xff08;因为26个小写字母&#xff09; …

互推机制在开源AI智能名片2+1链动模式S2B2C商城小程序源码推广中的应用探索

摘要&#xff1a; 在数字化营销时代&#xff0c;开源AI智能名片21链动模式S2B2C商城小程序源码作为一种创新的技术解决方案&#xff0c;正逐步成为企业数字化转型的重要工具。然而&#xff0c;面对激烈的市场竞争&#xff0c;如何高效推广这一前沿技术产品&#xff0c;成为开发…