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

C#小轮子:MiniExcel,快速操作Excel

文章目录

  • 前言
  • 环境安装
  • 功能测试
    • 普通读写
      • 新建Excel表格
      • 完全一致测试:成功
      • 大小写测试:严格大小写
      • 别名读测试:成功
      • 普通写
      • 别名写
      • 内容追加更新
      • 模板写
    • 其它功能
      • xlsx和CSV互转

前言

Excel的操作是我们最常用的操作,Excel相当于一个小型的数据库,目的是为了方便查看。
最近淘到了MiniExcel,简单来说就是特别好用
在这里插入图片描述
MiniExcel Github仓库

环境安装

  • Visual Studio 2022
  • .NET Core 6.0
  • Nuget
    • MiniExcel
    • Newtonsoft.Json(方便查看数据)

功能测试

普通读写

普通读写就是列名和实体类完全一致

新建Person测试类

    public class Person{public string Name { get;set; }public int Age { get; set; }public string Sex { get; set; }}

新建Excel表格

完全一致测试:成功

在这里插入图片描述

   static void Main(string[] args){//这里填你自己的文件路径var res =  MiniExcel.Query<Person>("Resource\\Person.xlsx");Console.WriteLine(JsonConvert.SerializeObject(res,Formatting.Indented));Console.WriteLine("运行完毕");Console.ReadKey();}

在这里插入图片描述

大小写测试:严格大小写

在这里插入图片描述

测试了一下,大小写不通过,必须完全一致。

别名读测试:成功

      [ExcelColumnName("姓名")]public string Name { get;set; }[ExcelColumnName("年龄")]public int Age { get; set; }[ExcelColumnName("性别")]public string Sex { get; set; }

在这里插入图片描述

在这里插入图片描述

我懒得重新写数据了,就直接用之前的Excel数据

 var res = new List<T_Person>(){new T_Person(){Name = "小刘",Age = 2,Sex = "女"},new T_Person(){Name = "小王",Age = 4,Sex = "男"},new T_Person(){Name = "小陈",Age = 5,Sex = "女"},};Console.WriteLine(JsonConvert.SerializeObject(res,Formatting.Indented));MiniExcel.SaveAs("Resource\\PersonOut2.xlsx",res,true,"Sheet2");

普通写

在这里插入图片描述

别名写

在这里插入图片描述

内容追加更新

不支持CSV文件内容增加

MiniExcel.Insert("Resource\\Person2.csv", res, "Sheet2");
//不支持插入xlsx
MiniExcel.Insert("Resource\\Person2.xlsx", res, "Sheet2");

在这里插入图片描述

在这里插入图片描述
建议通过xlsx和csv互转来解决。

MiniExcel.ConvertXlsxToCsv("Resource\\Person.xlsx", "Resource\\Person.csv");

模板写

其它功能

xlsx和CSV互转

MiniExcel.ConvertXlsxToCsv("Resource\\Person.xlsx", "Resource\\Person.csv");
http://www.lryc.cn/news/131820.html

相关文章:

  • Ribbon负载均衡
  • LeetCode--HOT100题(33)
  • 【docker练习】
  • 韦东山-电子量产工具项目:业务系统
  • React(6)
  • RabbitMq-2安装与配置
  • 论文笔记:Continuous Trajectory Generation Based on Two-Stage GAN
  • redis实战-缓存数据解决缓存与数据库数据一致性
  • 【排序】选择排序
  • 深入浅出Pytorch函数——torch.nn.init.trunc_normal_
  • 探索高级UI、源码解析与性能优化,了解开源框架及Flutter,助力Java和Kotlin筑基,揭秘NDK的魅力!
  • 国外服务器怎么有效降低延迟
  • AI百度文心一言大语言模型接入使用(中国版ChatGPT)
  • vue 安装并配置vuex
  • 有一种新型病毒在 3Ds Max 环境中传播,如何避免?
  • 基于Java/springboot铁路物流数据平台的设计与实现
  • 比较杂的html元素
  • Docker基本管理
  • .NET Core6.0使用NPOI导入导出Excel
  • 用API接口获取数据的好处有哪些,电商小白看过来!
  • 使用struct解析通达信本地Lday日线数据
  • 浅谈早期基于模板匹配的OCR的原理
  • 第6章 分布式文件存储
  • Spring(四):Spring Boot 的创建和使用
  • SpringCloud Gateway:status: 503 error: Service Unavailable
  • 【产品规划】功能需求说明书概述
  • shell连接ubuntu
  • 华为将收取蜂窝物联网专利费,或将影响LPWAN市场发展
  • 【3Ds Max】图形合并命令的简单使用
  • Flink的常用算子以及实例