当前位置: 首页 > 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);
}
http://www.lryc.cn/news/205396.html

相关文章:

  • 深度学习使用Keras进行迁移学习提升网络性能
  • 越流行的大语言模型越不安全
  • 搜维尔科技:伦敦艺术家利用Varjo头显捕捉盲人隐藏的梦想
  • 如何将html转化为pdf
  • ES6初步了解生成器
  • 飞桨大模型套件:一站式体验,性能极致,生态兼容
  • 【C++入门到精通】哈希 (STL) _ unordered_map _ unordered_set [ C++入门 ]
  • 创建 Edge 浏览器扩展教程(上)
  • container_of解析及应用
  • 搜维尔科技:Varjo-最自然和最直观的互动
  • Postman环境配置
  • Windows下Eclipse C/C++开发环境配置教程
  • 深入 Maven:构建杰出的软件项目的完美工具
  • 一文了解企业云盘和大文件传输哪个更适合企业传输
  • 在 history 模式下,为什么刷新页面会出现404?
  • 第二证券:“华为概念股”,怒刷13连板
  • 黑豹程序员-架构师学习路线图-百科:API接口测试工具Postman
  • 开源博客项目Blog .NET Core源码学习(5:mapster使用浅析)
  • Appium移动端自动测试框架,如何入门?
  • 外汇天眼:喜大普奔!困扰投资者的交易问题解决了!
  • UUID转16字节数组(Java)
  • 使用vue3 搭建一个H5手机端访问的项目
  • 【网络安全 --- 任意文件下载漏洞(1)】任意文件下载漏洞
  • 驱动开发day4(实现通过字符设备驱动的分布实现编写LED驱动,实现设备文件的绑定)
  • 《深入浅出.NET框架设计与实现》阅读笔记(一)
  • Flutter 类似onResume 监听,解决入场动画卡顿(2)
  • rabbitmq-3.8.15集群、集群镜像模式安装部署
  • import导入顺序杂乱的问题
  • Hadoop3教程(二十六):(生产调优篇)NameNode核心参数配置与回收站的启用
  • PaddleX场景实战:PP-TS在电压预测场景上的应用