EPPlus库的安装和使用 C# 中 Excel的导入和导出
安装
工具栏->NuGet 包管理器->管理解决方案的NuGet程序包

安装到当前项目中

使用
将 DataGridView 数据导出为Excel
- 首先,需要将数据DataGridView对象转换为DataTable
private void btnExport_Click(object sender, EventArgs e)
{// 1.将当前页面的dataGridView获取并且转换为datatable对象用于转换数据DataTable dt = new DataTable();// 创建一个新的DataTable,并添加列 for (int i = 0; i < dvgame.ColumnCount; i++){dt.Columns.Add(dvgame.Columns[i].HeaderText);}// 添加行数据 for (int i = 0; i < dvgame.RowCount; i++){DataRow dr = dt.NewRow();for (int j = 0; j < dvgame.ColumnCount; j++){dr[j] = dvgame.Rows[i].Cells[j].Value.ToString();}dt.Rows.Add(dr);}// 2.使用工具类,将datatable导出为ExcelExcelDataConvert.DataToExcel(dt);
}
- 将DataTable传入工具类中,导出为Excel
public static void DataToExcel(DataTable dataTable)
{// 1.创建一个Excel文件ExcelPackage.LicenseContext = LicenseContext.NonCommercial; // 使用非商业许可ExcelPackage excelPackage = new ExcelPackage();// 2.创建一个ExcelSheet 工作表 ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.Add("Sheet1");// 3.将数据写入到Excel中worksheet.Cells["A1"].LoadFromDataTable(dataTable, true);// 4.保存文件 保存Excel文件 string dictFolder = "C:\\Users\\robin\\Desktop\\csharpExcels";DateTime currentTime = DateTime.Now;string year = "\\" + currentTime.Year.ToString();string month = "\\" + currentTime.Month.ToString();string day = "\\" + currentTime.Day.ToString();dictFolder += year + month + day;// 判断文件夹是否存在,如果不存在则递归创建if (!Directory.Exists(dictFolder)){Directory.CreateDirectory(dictFolder);}string fileName = "\\" + DateTime.Now.ToString("hh-mm-ss")+ "games.xlsx";string filePath = dictFolder + fileName;if (File.Exists(filePath)){File.Delete(filePath);}excelPackage.SaveAs(new FileInfo(filePath));// Console.WriteLine("Excel文件已导出!");MessageBox.Show("Excel文件已经导出!路径为"+filePath);
}
将Excel导入到数据库中
导入数据无非就是,读取数据,以及Sql注入
public static void ExcelToDataGame(string filepath)
{// 1.配置EplusExcelPackage.LicenseContext = LicenseContext.NonCommercial; // 使用非商业许可,如有需要请更改 ExcelPackage package = new ExcelPackage(new FileInfo(filepath));ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; // 选择第一个工作表 int rowCount = worksheet.Dimension.Rows; // 获取行数 int colCount = worksheet.Dimension.Columns; // 获取列数 // 2.获取数据库对象GameDataAccess conn = GameDataAccess.GetInstance();int importCounts = 0;for (int row = 1; row <= rowCount; row++){if (row == 1){continue;}// 3.每次读取一行,执行一行SQl的插入string sql = "";GameEntity game = new GameEntity();game.GameName = worksheet.Cells[row, 1].Value.ToString();game.BackImg = worksheet.Cells[row, 2].Value.ToString();game.AddTime = DateTime.ParseExact(worksheet.Cells[row, 3].Value.ToString(), "yyyy/M/d H:mm:ss", null);game.Price = decimal.Parse(worksheet.Cells[row, 4].Value.ToString());game.Issue = worksheet.Cells[row, 5].Value.ToString();game.Type = worksheet.Cells[row, 6].Value.ToString();game.Describe = worksheet.Cells[row, 7].Value.ToString();game.Status = worksheet.Cells[row, 8].Value.ToString() == "下架" ? 0 : 1; //下架 0 ,正常 1int rs = conn.AddGame(game);if (rs < 0) { return; }importCounts++;MessageBox.Show(game.GameName + "导入成功!");}MessageBox.Show("共计导入"+importCounts);
}
相关文章:
EPPlus库的安装和使用 C# 中 Excel的导入和导出
安装 工具栏->NuGet 包管理器->管理解决方案的NuGet程序包 安装到当前项目中 使用 将 DataGridView 数据导出为Excel 首先,需要将数据DataGridView对象转换为DataTable private void btnExport_Click(object sender, EventArgs e) {// 1.将当前页面的data…...
深度学习使用Keras进行迁移学习提升网络性能
上一篇文章我们用自己定义的模型来解决了二分类问题,在20个回合的训练之后得到了大约74%的准确率,一方面是我们的epoch太小的原因,另外一方面也是由于模型太简单,结构简单,故而不能做太复杂的事情,那么怎么提升预测的准确率了?一个有效的方法就是迁移学习。 迁移学习其…...
越流行的大语言模型越不安全
源自:GoUpSec “人工智能技术与咨询” 发布 安全研究人员用OpenSSF记分卡对GitHub上50个最流行的生成式AI大语言模型项目的安全性进行了评估,结果发现越流行的大语言模型越危险。 近日,安全研究人员用OpenSSF记分卡对GitHub上50个最流…...
搜维尔科技:伦敦艺术家利用Varjo头显捕捉盲人隐藏的梦想
在伦敦举行的弗里泽艺术博览会上,与专业级虚拟现实/XR硬件和软件领域的全球领先者Varjo合作,展示一个突破性的混合现实艺术装置, 皇家国家盲人学会 (rnib),英国领先的视力丧失慈善机构。 这个名为"公共交通的私人生活"的装置是一个互动的声音和图像雕塑,旨在让有眼光…...
如何将html转化为pdf
html转换为pdf html2pdf.js库, 基于html2canvas和jspdf,只能打印2-3页pdf,比较慢,分页会截断html2canvas 只能打印2-3页pdf,比较慢,分页会截断 // canvasDom-to-image 不支持某些css属性Pdfmake html-to-p…...
ES6初步了解生成器
生成器函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同 语法: function * fun(){ } function * gen(){console.log("hello generator");}let iterator gen()console.log(iterator)打印: 我们发现没有打印”hello…...
飞桨大模型套件:一站式体验,性能极致,生态兼容
在Wave Summit 2023深度学习开发者大会上,来自百度的资深研发工程师贺思俊和王冠中带来的分享主题是:飞桨大模型套件,一站式体验,性能极致,生态兼容。 大语言模型套件PaddleNLP 众所周知PaddleNLP并不是一个全新的模型…...
【C++入门到精通】哈希 (STL) _ unordered_map _ unordered_set [ C++入门 ]
阅读导航 前言一、unordered系列容器二、unordered_map1. unordered_map简介⭕函数特点 2. unordered_map接口- 构造函数- unordered_map的容量- unordered_map的迭代器- unordered_map的元素访问- unordered_map的修改操作- unordered_map的桶操作 三、unordered_set1. unorde…...
创建 Edge 浏览器扩展教程(上)
创建 Edge 浏览器扩展教程(上) 介绍开始之前后续步骤开始之前1:创建清单 .json 文件2 :添加图标3:打开默认弹出对话框 介绍 在如今日益数字化的时代,浏览器插件在提升用户体验、增加功能以及改善工作流程方…...
container_of解析及应用
container_of是一个C语言中比较少见,但实际经常用到的宏,在Linux kernel中也有大范围的应用。...
搜维尔科技:Varjo-最自然和最直观的互动
创建真实生活虚拟设计 Varjo让你沉浸在最自然的混合和虚拟现实环境中。 世界各地的设计团队可以聚集在一个摄影现实的虚拟空间中,以真实的准确性展示新的概念-实时的讨论和迭代。这是一个充满无限创造潜力的新时代,加速了人类前所未有的想象力。 虚拟现实、自动反应和XR设计的…...
Postman环境配置
Postman环境配置 安装Postman安装node.js安装newman安装htmlextra安装git注册163邮箱用163邮箱注册gitee在pycharm中安装gitee详细文档 安装Postman 网址:https://www.postman.com/downloads/ 注册一个账号即可 安装node.js 安装newman npm install -g newman …...
Windows下Eclipse C/C++开发环境配置教程
1.下载安装Eclipse 官网下载eclipse-installer(eclipse下载器),或者官方下载对应版本zip。 本文示例: Eclipse IDE for C/C Developers Eclipse Packages | The Eclipse Foundation - home to a global community, the Eclipse ID…...
深入 Maven:构建杰出的软件项目的完美工具
掌握 Meven:构建更强大、更智能的应用程序的秘诀 Maven1.1 初识Maven1.1.1 什么是Maven1.1.2 Maven的作用 02. Maven概述2.1 Maven介绍2.2 Maven模型2.3 Maven仓库2.4 Maven安装2.4.1 下载2.4.2 安装步骤 03. IDEA集成Maven3.1 配置Maven环境3.1.1 当前工程设置3.1.…...
一文了解企业云盘和大文件传输哪个更适合企业传输
文件传输是企业工作中必不可少的环节,无论是内部协作还是外部沟通,都需要高效、安全、稳定地传输各种类型和大小的文件。然而,市面上的文件传输工具众多,如何选择合适的工具呢?本文将从两种常见的文件传输工具——企业…...
在 history 模式下,为什么刷新页面会出现404?
1、原因 因为浏览器在刷新页面时,它会向服务器发送 GET 请求,但此时服务器并没有配置相应的资源来匹配这个请求,因此返回 404 错误。 2、解决方案 为了解决这个问题,我们需要在服务器端进行相关配置,让所有的路由都指…...
第二证券:“华为概念股”,怒刷13连板
大盘颤动时,“妖股”出生日。 到10月24日收盘,圣龙股份连续第13个生意日以涨停报收,区间涨幅抵达245.62%,总市值89亿元;公司13个生意日成交额抵达90亿元,总换手率达159%。 此外,圣龙股份还在暴…...
黑豹程序员-架构师学习路线图-百科:API接口测试工具Postman
文章目录 1、为什么要使用Postman?2、什么是Postman? 1、为什么要使用Postman? 目前我们开发项目大都是前后端分离项目,前端采用h5cssjsvue基于nodejs,后端采用java、SpringBoot、SSM,大型项目采用SpringC…...
开源博客项目Blog .NET Core源码学习(5:mapster使用浅析)
开源博客项目Blog使用mapster框架映射对象,主要是在数据库表对象及前端数据对象之间进行映射,本文学习并记录项目中mapster的使用方式。 App.Hosting项目的program文件中调用builder.Services.AddMapper函数进行对象模型自动映射,而该函数…...
Appium移动端自动测试框架,如何入门?
Appium是一个开源跨平台移动应用自动化测试框架。 既然只是想学习下Appium如何入门,那么我们就直奔主题。文章结构如下: 1、为什么要使用Appium? 2、如何搭建Appium工具环境?(超详细) 3、通过demo演示Appium的使用 4、Appium如何…...
全方位解析GBFR Logs:《碧蓝幻想:Relink》战斗数据分析平台
全方位解析GBFR Logs:《碧蓝幻想:Relink》战斗数据分析平台 【免费下载链接】gbfr-logs GBFR Logs lets you track damage statistics with a nice overlay DPS meter for Granblue Fantasy: Relink. 项目地址: https://gitcode.com/gh_mirrors/gb/gbf…...
RyTuneX:WinUI3驱动的Windows性能优化引擎
RyTuneX:WinUI3驱动的Windows性能优化引擎 【免费下载链接】RyTuneX RyTuneX is a cutting-edge optimizer built with the WinUI 3 framework, designed to amplify the performance of Windows devices. Crafted for both Windows 10 and 11. 项目地址: https:/…...
Qwen3.5-9B-AWQ-4bit Java开发环境快速配置:从安装到第一个AI程序
Qwen3.5-9B-AWQ-4bit Java开发环境快速配置:从安装到第一个AI程序 1. 准备工作:你需要什么 在开始之前,确保你的电脑满足以下基本要求: 操作系统:Windows 10/11、macOS 10.15 或主流Linux发行版内存:至少…...
SRWE:打破Windows窗口限制的智能编辑器
SRWE:打破Windows窗口限制的智能编辑器 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE SRWE(Simple Runtime Window Editor)是一款专为Windows系统设计的实时窗口编辑工具&am…...
【通信】基于UCB的多智能体多臂老虎机算法降低 OBSS 干扰、提升系统吞吐量与公平性附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。👇 关注我领取海量matlab电子书和数学建模资料🍊个人信条:格物致知,完整Matl…...
LFM2.5-1.2B-Thinking-GGUF压力测试与性能调优:寻找最佳并发参数
LFM2.5-1.2B-Thinking-GGUF压力测试与性能调优:寻找最佳并发参数 1. 为什么需要压力测试 当你把LFM2.5-1.2B-Thinking-GGUF模型部署上线后,最担心的问题可能就是:这个服务能承受多少用户同时访问?会不会在高并发时崩溃ÿ…...
d2s-editor:让暗黑破坏神2存档修改变得高效而简单
d2s-editor:让暗黑破坏神2存档修改变得高效而简单 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 在暗黑破坏神2的冒险旅程中,玩家常常面临三大痛点:反复刷装备消耗大量时间、测试不同职业bui…...
如何用OpenRPA实现企业级流程自动化?开源RPA工具完整指南
如何用OpenRPA实现企业级流程自动化?开源RPA工具完整指南 【免费下载链接】openrpa Free Open Source Enterprise Grade RPA 项目地址: https://gitcode.com/gh_mirrors/op/openrpa 在数字化转型浪潮中,企业面临着效率瓶颈与成本压力的双重挑战。…...
【无标题】MySQL数据库基础实例教程单元2 学习笔记
2.1 关系数据库设计 2.1.1 数据的加工 数据设计本质上是对现实世界信息的逐步抽象和加工,过程分为三个阶段。首先是现实世界,包含客观存在的事物、业务需求和事物之间的联系。然后进入信息世界,把现实事物抽象为概念模型,方便理解…...
MID360+单目实现差速小车重定位、导航避障与自动充电
实现的功能:建图、重定位、导航、避障、自动充电 MID360单目实现差速小车重定位、导航避障与自动充电 视频演示 github链接:Github仓库地址 🚀 ArduRover-Mid360: 移动机器人系统 本项目是一个基于APM飞控、NVIDIA Jetson Orin NX 算力平台…...
