乐于分享
好东西不私藏

Excel导入导出:用C#读取Excel数据转成List<T>,用泛型适配各种实体

Excel导入导出:用C#读取Excel数据转成List,用泛型适配各种实体

一套代码通吃所有Excel导入导出,再也不用来回写重复逻辑

前言:为什么你的Excel代码总是复制粘贴?

先问大家一个问题:你写过多少遍这样的代码?

每一个实体都要写一套,除了类型不同,逻辑几乎一模一样

今天这篇文章,带你用泛型+反射构建一个通用Excel导入组件:

  • 一个方法通吃所有实体类型

  • 列名自动映射到实体属性

  • 支持类型自动转换

读完这篇,你以后写Excel导入只需要两行代码。

文末有完整源码,记得看到最后。

一、技术选型:NPOI

NPOI是Apache POI的.NET移植版,完全免费、无需安装Office、支持.xls和.xlsx

二、核心代码:通用导入

2.1 完整实现

2.2 使用方式

Excel表头示例:

姓名
年龄
工资
入职日期
张三
25
8500.50
2024-01-15
李四
30
12000.00
2023-06-01

三、核心原理

3.1 列名映射

3.2 类型转换

Excel里读取的数据都是原始类型(字符串、数字等),我们需要把它们转成实体属性的目标类型:

csharp

Excel的"8500.50"(数字)→ 实体属性是 decimal → 转成 8500.50mExcel的"2024-01-15"(字符串)→ 实体属性是 DateTime → 转成 DateTime

四、通用导出(List<T> → Excel)

五、使用场景示例

场景1:批量导入用户

场景2:导出报表

六、总结

功能
代码
导入
ExcelHelper.Import<User>("文件.xlsx")
导出
ExcelHelper.Export(users, "文件.xlsx")
支持格式
.xls / .xlsx
原理
反射 + 泛型

🎁 粉丝专属福利

想要本文完整源码 + NPOI使用示例 + 错误处理增强版?

扫码加我微信:YDT9974,备注【666】,免费领取全套学习资料!

📌 加我还可以获得:

📣 说两句掏心窝的话

有了这套通用组件,你以后写Excel导入导出只需要两行代码。核心就靠泛型反射,T传什么类型,它就帮你解析什么类型。

强烈建议把这段代码保存在你的工具库中,每个项目都能直接用。


如果这篇文章帮你省下了大量重复劳动,请点个「赞」和「在看」。

有疑问?评论区留言,每条必回!