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

文章目录

前言

Excel的操作是我们最常用的操作,Excel相当于一个小型的数据库,目的是为了方便查看。

最近淘到了MiniExcel,简单来说就是特别好用

MiniExcel Github仓库

环境安装

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

功能测试

普通读写

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

读

新建Person测试类

csharp 复制代码
    public class Person
    {

        public string Name { get;set; }

        public int Age { get; set; }

        public string Sex { get; set; }
    }

新建Excel表格

完全一致测试:成功

csharp 复制代码
   static void Main(string[] args)
   {
       //这里填你自己的文件路径
       var res =  MiniExcel.Query<Person>("Resource\\Person.xlsx");

       Console.WriteLine(JsonConvert.SerializeObject(res,Formatting.Indented));
       Console.WriteLine("运行完毕");
       Console.ReadKey();
   }

大小写测试:严格大小写

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

别名读测试:成功

csharp 复制代码
      [ExcelColumnName("姓名")]
      public string Name { get;set; }

      [ExcelColumnName("年龄")]

      public int Age { get; set; }

      [ExcelColumnName("性别")]

      public string Sex { get; set; }

写

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

csharp 复制代码
 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文件内容增加

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

建议通过xlsx和csv互转来解决。

csharp 复制代码
MiniExcel.ConvertXlsxToCsv("Resource\\Person.xlsx", "Resource\\Person.csv");

模板写

其它功能

xlsx和CSV互转

csharp 复制代码
MiniExcel.ConvertXlsxToCsv("Resource\\Person.xlsx", "Resource\\Person.csv");
相关推荐
starzy19902 小时前
深入理解Scala隐式类:扩展方法机制
开发语言·人工智能·scala
M--Y3 小时前
LangGraph 工作流模式
开发语言·javascript·python·langchain·大模型·llm·langgraph
吴可可1234 小时前
WScript Shell操作注册表详解
开发语言
纪念 2295 小时前
C++ 算法基础 (差分)
开发语言·c++·算法
码农小河669 小时前
基于PHP的电商后台蜜罐系统
开发语言·php
starzy19909 小时前
深入理解Scala柯里化函数:函数链式变换
开发语言·scala
ShineWinsu10 小时前
对于Qt:QTreeWidget常见属性以及QTreeWidgetItem类的解析
开发语言·c++·qt·gui·客户端·多叉树·qtreewidget
落羽的落羽10 小时前
【C++】C++17的主要特性
linux·服务器·开发语言·c++·算法·机器学习
总要学点什么11 小时前
第108篇:三维特效-图片轨迹线效果——把贴图滚成一串箭头,想用它的本色反而整条消失
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
暴走约伯13 小时前
【VFX工具链源码拆解 09】终极工业化闭环:基于 ID 规则驱动的全自动场景建档、骨骼挂载与男转女场景迁移
unity·c#·游戏引擎·材质