C#如何使用NPOI将excel导入到list
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下C#如何使用NPOI将excel导入到list,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下这个是确定是实体类接收/// /// 将excel导入到li
千家信息网最后更新 2026年11月03日C#如何使用NPOI将excel导入到list
小编给大家分享一下C#如何使用NPOI将excel导入到list,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
具体内容如下
这个是确定是实体类接收
////// 将excel导入到list/// ////// Stream 文件流/// 转换的Dictionary:例如 ("昵称","nickname")/// public static List ExcelToList (this Stream fs, Dictionary list) where T : class, new() { List ts = new List (); IWorkbook workbook = null; ISheet sheet = null; T t = new T(); List listName = new List (); try { // 获得此模型的公共属性 var propertys = t.GetType().GetProperties().ToList(); workbook = new HSSFWorkbook(fs); if (workbook != null) { sheet = workbook.GetSheetAt(0);//读取第一个sheet,当然也可以循环读取每个sheet if (sheet != null) { int rowCount = sheet.LastRowNum;//总行数 if (rowCount > 0) { IRow firstRow = sheet.GetRow(0);//第一行 int cellCount = firstRow.LastCellNum;//列数 //循环列数 for (int i = 0; i < cellCount; i++) { //循环需要转换的值 foreach (var item in list) { if (item.Key.Equals(firstRow.GetCell(i).StringCellValue)) { //替换表头 firstRow.GetCell(i).SetCellValue(item.Value); } } //获取已经替换的表头 var s = firstRow.GetCell(i).StringCellValue; //添加到listname listName.Add(s); } for (int i = 1; i <= rowCount; i++) { t = new T(); IRow currRow = sheet.GetRow(i);//第i行 for (int k = 0; k < cellCount; k++) { //取值 object value = null; if (currRow.GetCell(k) != null) { firstRow.GetCell(0).SetCellType(CellType.String); currRow.GetCell(k).SetCellType(CellType.String); value = currRow.GetCell(k).StringCellValue; } else { continue; } var Name = string.Empty; //获取第表头的值 Name = listName[k]; //循环属性 foreach (var pi in propertys) { if (pi.Name.Equals(Name)) { //获取属性类型名称 var s = pi.PropertyType.Name; //如果非空,则赋给对象的属性 if (value != DBNull.Value) { //判断属性的类型(可以自行添加) switch (s) { case "Guid": pi.SetValue(t, new Guid(value.ToString()), null); break; case "Int32": pi.SetValue(t, value.ToString() == "" ? 0 : Convert.ToInt32(value.ToString()), null); break; case "Decimal": pi.SetValue(t, value.ToString() == "" ? 0 : Convert.ToDecimal(value.ToString()), null); break; case "DateTime": pi.SetValue(t, Convert.ToDateTime(value.ToString()), null); break; case "Double": pi.SetValue(t, value.ToString() == "" ? 0 : Convert.ToDouble(value.ToString()), null); break; case "String": pi.SetValue(t, value, null); break; default: break; } } } } } //对象添加到泛型集合中 ts.Add(t); } } } } return ts; } catch (Exception ex) { if (fs != null) { fs.Close(); } return null; } }
调用
var list = new Dictionary(); list.Add("ID", "TradeAccountId"); list.Add("简介", "Intro"); list.Add("昵称1", "Nickname"); list.Add("限制人数", "SubscribeLimit"); list.Add("模式", "SubscribeMode"); list.Add("收益率", "ProfitRate"); list.Add("收益", "ProfitLossAmount"); list.Add("头像", "Img"); list.Add("平台名称", "Name"); list.Add("用户昵称", "UserNickname"); FileStream fs = new FileStream(@"C:\Users\Administrator\Desktop\Test\Test\bin\Debug\Export\2021-04-27-14-46-36.xls", FileMode.Open); var list3 = fs.ExcelToList (list);
实体类
[Serializable]public class Res_Signal { /// /// 交易账号ID /// public Guid TradeAccountId { get; set; } /// /// 交易账号简介 /// public String Intro { get; set; } /// /// 交易账号昵称 /// public String Nickname { get; set; } /// /// 订阅限制值 /// public Int32 SubscribeLimit { get; set; } /// /// 订阅模式 目前都是免费 0免费 1收费 /// public Int32 SubscribeMode { get; set; } /// /// 订阅模式名称 /// public String SubscribeMode_Des { get; set; } /// /// 平台名称 /// public String Name { get; set; } /// /// 头像 /// public String HeadImg { get; set; } /// /// 用户昵称 /// public String UserNickname { get; set; } /// /// 订阅人数 /// public Int32 SubscribeCount { get; set; } /// /// 平台图片 /// public String Img { get; set; } /// /// 收益率 /// public decimal ProfitRate { get; set; } /// /// 总收益 /// public decimal ProfitLossAmount { get; set; }}看完了这篇文章,相信你对"C#如何使用NPOI将excel导入到list"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
属性
昵称
名称
收益
循环
订阅
平台
模式
表头
账号
交易
C#
人数
头像
实体
对象
收益率
用户
简介
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
新华互联网科技
上海卓越科技互联网
科技股互联网
科技信息互联网
奇酷互联网科技
朗涯互联网科技
华中科技大学互联网
互联网科技logo
猫创互联网科技
大白互联网科技
天扬科技互联网广告
互联网金融中的现代科技
互联网新科技动漫ppt素材
互联网科技股为什么大涨
新氧科技和美国互联网有关系吗
广东鹅鹅鹅互联网科技有限公司
中国新注册互联网科技
北京互联网科技类企业分布
广州三三互联网科技有限公司
颐高云石互联网科技
礼当家互联网科技
浩特互联网科技
左右互联网络科技
苏州铭阳互联网科技有限公司
未来五年的互联网科技
启辰互联网科技
互联网营销推广黑科技
风投北京互联网科技
宁波允成互联网科技有限公司
高科技和互联网的现代国家