当前位置: 首页 > news >正文

EPPlus库的安装和使用 C# 中 Excel的导入和导出

安装

工具栏->NuGet 包管理器->管理解决方案的NuGet程序包

在这里插入图片描述

安装到当前项目中

在这里插入图片描述

使用

将 DataGridView 数据导出为Excel

  1. 首先,需要将数据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);
}
  1. 将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 首先&#xff0c;需要将数据DataGridView对象转换为DataTable private void btnExport_Click(object sender, EventArgs e) {// 1.将当前页面的data…...

深度学习使用Keras进行迁移学习提升网络性能

上一篇文章我们用自己定义的模型来解决了二分类问题,在20个回合的训练之后得到了大约74%的准确率,一方面是我们的epoch太小的原因,另外一方面也是由于模型太简单,结构简单,故而不能做太复杂的事情,那么怎么提升预测的准确率了?一个有效的方法就是迁移学习。 迁移学习其…...

越流行的大语言模型越不安全

源自&#xff1a;GoUpSec “人工智能技术与咨询” 发布 安全研究人员用OpenSSF记分卡对GitHub上50个最流行的生成式AI大语言模型项目的安全性进行了评估&#xff0c;结果发现越流行的大语言模型越危险。 近日&#xff0c;安全研究人员用OpenSSF记分卡对GitHub上50个最流…...

搜维尔科技:伦敦艺术家利用Varjo头显捕捉盲人隐藏的梦想

在伦敦举行的弗里泽艺术博览会上,与专业级虚拟现实/XR硬件和软件领域的全球领先者Varjo合作,展示一个突破性的混合现实艺术装置, 皇家国家盲人学会 (rnib),英国领先的视力丧失慈善机构。 这个名为"公共交通的私人生活"的装置是一个互动的声音和图像雕塑,旨在让有眼光…...

如何将html转化为pdf

html转换为pdf html2pdf.js库&#xff0c; 基于html2canvas和jspdf&#xff0c;只能打印2-3页pdf&#xff0c;比较慢&#xff0c;分页会截断html2canvas 只能打印2-3页pdf&#xff0c;比较慢&#xff0c;分页会截断 // canvasDom-to-image 不支持某些css属性Pdfmake html-to-p…...

ES6初步了解生成器

生成器函数是ES6提供的一种异步编程解决方案&#xff0c;语法行为与传统函数完全不同 语法&#xff1a; function * fun(){ } function * gen(){console.log("hello generator");}let iterator gen()console.log(iterator)打印&#xff1a; 我们发现没有打印”hello…...

飞桨大模型套件:一站式体验,性能极致,生态兼容

在Wave Summit 2023深度学习开发者大会上&#xff0c;来自百度的资深研发工程师贺思俊和王冠中带来的分享主题是&#xff1a;飞桨大模型套件&#xff0c;一站式体验&#xff0c;性能极致&#xff0c;生态兼容。 大语言模型套件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 浏览器扩展教程&#xff08;上&#xff09; 介绍开始之前后续步骤开始之前1&#xff1a;创建清单 .json 文件2 &#xff1a;添加图标3&#xff1a;打开默认弹出对话框 介绍 在如今日益数字化的时代&#xff0c;浏览器插件在提升用户体验、增加功能以及改善工作流程方…...

container_of解析及应用

container_of是一个C语言中比较少见&#xff0c;但实际经常用到的宏&#xff0c;在Linux kernel中也有大范围的应用。...

搜维尔科技:Varjo-最自然和最直观的互动

创建真实生活虚拟设计 Varjo让你沉浸在最自然的混合和虚拟现实环境中。 世界各地的设计团队可以聚集在一个摄影现实的虚拟空间中,以真实的准确性展示新的概念-实时的讨论和迭代。这是一个充满无限创造潜力的新时代,加速了人类前所未有的想象力。 虚拟现实、自动反应和XR设计的…...

Postman环境配置

Postman环境配置 安装Postman安装node.js安装newman安装htmlextra安装git注册163邮箱用163邮箱注册gitee在pycharm中安装gitee详细文档 安装Postman 网址&#xff1a;https://www.postman.com/downloads/ 注册一个账号即可 安装node.js 安装newman npm install -g newman …...

Windows下Eclipse C/C++开发环境配置教程

1.下载安装Eclipse 官网下载eclipse-installer&#xff08;eclipse下载器&#xff09;&#xff0c;或者官方下载对应版本zip。 本文示例&#xff1a; Eclipse IDE for C/C Developers Eclipse Packages | The Eclipse Foundation - home to a global community, the Eclipse ID…...

深入 Maven:构建杰出的软件项目的完美工具

掌握 Meven&#xff1a;构建更强大、更智能的应用程序的秘诀 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.…...

一文了解企业云盘和大文件传输哪个更适合企业传输

文件传输是企业工作中必不可少的环节&#xff0c;无论是内部协作还是外部沟通&#xff0c;都需要高效、安全、稳定地传输各种类型和大小的文件。然而&#xff0c;市面上的文件传输工具众多&#xff0c;如何选择合适的工具呢&#xff1f;本文将从两种常见的文件传输工具——企业…...

在 history 模式下,为什么刷新页面会出现404?

1、原因 因为浏览器在刷新页面时&#xff0c;它会向服务器发送 GET 请求&#xff0c;但此时服务器并没有配置相应的资源来匹配这个请求&#xff0c;因此返回 404 错误。 2、解决方案 为了解决这个问题&#xff0c;我们需要在服务器端进行相关配置&#xff0c;让所有的路由都指…...

第二证券:“华为概念股”,怒刷13连板

大盘颤动时&#xff0c;“妖股”出生日。 到10月24日收盘&#xff0c;圣龙股份连续第13个生意日以涨停报收&#xff0c;区间涨幅抵达245.62%&#xff0c;总市值89亿元&#xff1b;公司13个生意日成交额抵达90亿元&#xff0c;总换手率达159%。 此外&#xff0c;圣龙股份还在暴…...

黑豹程序员-架构师学习路线图-百科:API接口测试工具Postman

文章目录 1、为什么要使用Postman&#xff1f;2、什么是Postman&#xff1f; 1、为什么要使用Postman&#xff1f; 目前我们开发项目大都是前后端分离项目&#xff0c;前端采用h5cssjsvue基于nodejs&#xff0c;后端采用java、SpringBoot、SSM&#xff0c;大型项目采用SpringC…...

开源博客项目Blog .NET Core源码学习(5:mapster使用浅析)

开源博客项目Blog使用mapster框架映射对象&#xff0c;主要是在数据库表对象及前端数据对象之间进行映射&#xff0c;本文学习并记录项目中mapster的使用方式。   App.Hosting项目的program文件中调用builder.Services.AddMapper函数进行对象模型自动映射&#xff0c;而该函数…...

Appium移动端自动测试框架,如何入门?

Appium是一个开源跨平台移动应用自动化测试框架。 既然只是想学习下Appium如何入门&#xff0c;那么我们就直奔主题。文章结构如下&#xff1a; 1、为什么要使用Appium&#xff1f; 2、如何搭建Appium工具环境?(超详细&#xff09; 3、通过demo演示Appium的使用 4、Appium如何…...

全方位解析GBFR Logs:《碧蓝幻想:Relink》战斗数据分析平台

全方位解析GBFR Logs&#xff1a;《碧蓝幻想&#xff1a;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&#xff1a;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开发环境快速配置&#xff1a;从安装到第一个AI程序 1. 准备工作&#xff1a;你需要什么 在开始之前&#xff0c;确保你的电脑满足以下基本要求&#xff1a; 操作系统&#xff1a;Windows 10/11、macOS 10.15 或主流Linux发行版内存&#xff1a;至少…...

SRWE:打破Windows窗口限制的智能编辑器

SRWE&#xff1a;打破Windows窗口限制的智能编辑器 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE SRWE&#xff08;Simple Runtime Window Editor&#xff09;是一款专为Windows系统设计的实时窗口编辑工具&am…...

【通信】基于UCB的多智能体多臂老虎机算法降低 OBSS 干扰、提升系统吞吐量与公平性附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f447; 关注我领取海量matlab电子书和数学建模资料&#x1f34a;个人信条&#xff1a;格物致知,完整Matl…...

LFM2.5-1.2B-Thinking-GGUF压力测试与性能调优:寻找最佳并发参数

LFM2.5-1.2B-Thinking-GGUF压力测试与性能调优&#xff1a;寻找最佳并发参数 1. 为什么需要压力测试 当你把LFM2.5-1.2B-Thinking-GGUF模型部署上线后&#xff0c;最担心的问题可能就是&#xff1a;这个服务能承受多少用户同时访问&#xff1f;会不会在高并发时崩溃&#xff…...

d2s-editor:让暗黑破坏神2存档修改变得高效而简单

d2s-editor&#xff1a;让暗黑破坏神2存档修改变得高效而简单 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 在暗黑破坏神2的冒险旅程中&#xff0c;玩家常常面临三大痛点&#xff1a;反复刷装备消耗大量时间、测试不同职业bui…...

如何用OpenRPA实现企业级流程自动化?开源RPA工具完整指南

如何用OpenRPA实现企业级流程自动化&#xff1f;开源RPA工具完整指南 【免费下载链接】openrpa Free Open Source Enterprise Grade RPA 项目地址: https://gitcode.com/gh_mirrors/op/openrpa 在数字化转型浪潮中&#xff0c;企业面临着效率瓶颈与成本压力的双重挑战。…...

【无标题】MySQL数据库基础实例教程单元2 学习笔记

2.1 关系数据库设计 2.1.1 数据的加工 数据设计本质上是对现实世界信息的逐步抽象和加工&#xff0c;过程分为三个阶段。首先是现实世界&#xff0c;包含客观存在的事物、业务需求和事物之间的联系。然后进入信息世界&#xff0c;把现实事物抽象为概念模型&#xff0c;方便理解…...

MID360+单目实现差速小车重定位、导航避障与自动充电

实现的功能&#xff1a;建图、重定位、导航、避障、自动充电 MID360单目实现差速小车重定位、导航避障与自动充电 视频演示 github链接&#xff1a;Github仓库地址 &#x1f680; ArduRover-Mid360: 移动机器人系统 本项目是一个基于APM飞控、NVIDIA Jetson Orin NX 算力平台…...