1. /// <summary>
  2. /// 导出Excel
  3. /// </summary>
  4. /// <param name="path">路径</param>
  5. /// <param name="tableHeaders">表头,Dictionary<propname,name> propname属性名 ,name表头名称</param>
  6. /// <param name="data"></param>
  7. /// <returns></returns>
  8. public static string Export(string path, Dictionary<string, string> tableHeaders, Object[] data)
  9. {
  10. string fileName = $"{Guid.NewGuid()}.xlsx";
  11. var filePath = $"{path}\\{fileName}";
  12. FileInfo file = new FileInfo(filePath);
  13. try
  14. {
  15. using (ExcelPackage package = new ExcelPackage(file))
  16. {
  17.  
  18. ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("exportdata");
  19. var row = 1;
  20. for (int i = 0; i < tableHeaders.Count; i++)
  21. {
  22. var headName = tableHeaders.ElementAt(i).Value;
  23. worksheet.Cells[row, i + 1].Value = headName;
  24. }
  25. foreach (object item in data)
  26. {
  27. row++;
  28. var propts = item.GetType().GetProperties();
  29. for (int i = 0; i < tableHeaders.Count; i++)
  30. {
  31. var propName = tableHeaders.ElementAt(i).Key;
  32. var check = propts.FirstOrDefault(o => o.Name.ToLower() == propName.ToLower());
  33. if (check == null) worksheet.Cells[row, i + 1].Value = "";
  34. else
  35. {
  36. var value = check.GetValue(item);
  37. worksheet.Cells[row, i + 1].Value = value == null ? "" : value.ToString();
  38. };
  39. }
  40. }
  41. package.Save();
  42. }
  43. }
  44. catch (Exception ex)
  45. {
  46. LogHelper.Singleton.Write(typeof(ExcelHelper), ex);
  47. return null;
  48. }
  49. return filePath;
  50. }
  1. /// <summary>
  2. /// 导入数据
  3. /// </summary>
  4. /// <param name="filePath">文件</param>
  5. /// <returns></returns>
  6. public static List<SchoolModel> ImportSchool(string filePath)
  7. {
  8. FileInfo file = new FileInfo(filePath);
  9. List<SchoolModel> result = new List<SchoolModel>();
  10. if (file.Length == 0) return null;
  11. using (ExcelPackage package = new ExcelPackage(file))
  12. {
  13. //访问Excel的第一张表
  14. ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
  15. //获取表格不为空的数
  16. int rowCount = worksheet.Cells.Where(o=>o.Value!=null).Count();
  17. //获取表格列数
  18. int columnsCount = worksheet.Dimension.Columns;
              //跳过表头从第二行,读取数据
  19. for (int row = 2; row <= rowCount; row++)
  20. {
  21. if (row < 2) return null;
  22. if (worksheet.Cells[row, 1].Value == null
  23. || worksheet.Cells[row, 2].Value == null
  24. || worksheet.Cells[row, 3].Value == null
  25. || worksheet.Cells[row, 4].Value == null
  26. || worksheet.Cells[row, 5].Value == null
  27. || worksheet.Cells[row, 6].Value == null)
  28. {
  29. continue;
  30. }
  31. result.Add(new SchoolModel()
  32. {
  33. SchoolName = worksheet.Cells[row, 1].Value.ToString(),
  34. SchoolCode = worksheet.Cells[row, 2].Value.ToString(),
  35. SubjectName = worksheet.Cells[row, 3].Value.ToString(),
  36. SubjectCode = worksheet.Cells[row, 4].Value.ToString(),
  37. SchoolSystem = worksheet.Cells[row, 5].Value.ToString(),
  38. TuitionStandard = decimal.Parse(worksheet.Cells[row, 6].Value.ToString()),
  39. });
  40.  
  41. }
  42. package.SaveAs(file);
  43. }
  44. return result;
  45. }
  1. ///数据模型类
  2. public class SchoolModel
  3. {
  4. public string SchoolName { get; set; }
  5. public string SchoolCode { get; set; }
  6. public string SubjectName { get; set; }
  7. public string SubjectCode { get; set; }
  8. public string SchoolSystem { get; set; }
  9. public decimal TuitionStandard { get; set; }
  10. }
  1.  
  1.  

.Net Core 读取,导入 excel数据 officeopenxml的更多相关文章

  1. Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel

    Asp.Net Core 导入Excel数据到Sqlite数据库并重新导出到Excel 在博文"在Asp.Net Core 使用 Sqlite 数据库"中创建了ASP.NET Co ...

  2. 基于 Aspose.Cells与XML导入excel 数据----操作类封装

    前言 导入excel数据, 在每个项目中基本上都会遇到,第三方插件或者基于微软office,用的最多的就是npoi,aspose.cells和c#基于office这三种方式,其中各有各的优缺点,在这也 ...

  3. thinkphp整合系列之phpexcel导入excel数据

    一:导入phpexcel /ThinkPHP/Library/Vendor/PHPExcel 二:导入excel的函数 /** * 导入excel文件 * @param string $file ex ...

  4. springboot批量导入excel数据

    1 背景 小白今天闲着没事,在公司摸鱼,以为今天有事无聊的一天,突然上头说小子,今天实现一下批量导入Excel数据吧,当时我的内心是拒绝的,然后默默打开idea. 2 介绍 2.1 框架 java本身 ...

  5. SQL Server服务器上需要导入Excel数据的必要条件

    SQL Server服务器上需要导入Excel数据,必须安装2007 Office system 驱动程序:数据连接组件,或者Access2010的数据库引擎可再发行程序包,这样就不必在服务器上装Ex ...

  6. PLSQL Developer导入Excel数据

    LSQL Developer导入Excel数据 最近处理将Excel数据导入Oracle的工作比较多.之前都是采用Sqlldr命令行导入的方式处理.每次导入不同格式的Excel表数据,都需要先把Exc ...

  7. 导入excel数据

    前提条件:先要安装好EXCEL软件. 程序中经常要用到导入excel数据的功能.其实通过ole操作excel就简单的几行代码,但记性不好,经常要用经常要找, 还是作篇笔记吧. var ExcelApp ...

  8. (转)PLSQL Developer导入Excel数据

    场景:近来在做加班记录的统计,主要是统计Excel表格中的时间,因为我对于Excel表格的操作不是很熟悉,所以就想到把表格中的数据导入到数据库中,通过脚本语言来统计,就很方便了!但是目前来看,我还没有 ...

  9. 结合bootstrap fileinput插件和Bootstrap-table表格插件,实现文件上传、预览、提交的导入Excel数据操作流程

    1.bootstrap-fileinpu的简单介绍 在前面的随笔,我介绍了Bootstrap-table表格插件的具体项目应用过程,本篇随笔介绍另外一个Bootstrap FieInput插件的使用, ...

随机推荐

  1. python实践项目1

    python #南昌理工学院人工智能学院实验室 WORKSHOP 实践项目 import time print('welcome to our WORKSHOP') print('.......... ...

  2. basicInterpreter1.01 支持分支语句

    源码:https://files.cnblogs.com/files/heyang78/basicInterpreter-20200531-1.rar 输入: count= print(count) ...

  3. 【Oracle】SQL对某字段模糊查询,哪种方案最快?

    问题:有一张表hy_test,查找其字段name中包含ufo的记录数,下面哪种方案最快? A.select count(*) from hy_test where name like '%ufo%' ...

  4. 【NOIP2013模拟】黑魔法师之门

    题目描述 经过了16个工作日的紧张忙碌,未来的人类终于收集到了足够的能源.然而在与Violet星球的战争中,由于Z副官的愚蠢,地球的领袖applepi被邪恶的黑魔法师Vani囚禁在了Violet星球. ...

  5. Java枚举解读

    Java枚举 枚举类概念的理解与定义 一个类的对象是有限个,确定的,我们称此为枚举类. 当需要定义和维护一组常量时,强烈建议使用枚举类. 如果一个枚举类中只有一个对象,则可以作为单例模式的实现方式. ...

  6. Proxy使用详解

    文档:Proxy 基本使用就不赘述,看文档即可 通用 1.Proxy可以包装任何形式的对象:包括原生数组,函数,甚至另一个代理 2.代理实例中没有指定的handler,实际就是操作原对象target: ...

  7. Gradle实战(01)--介绍与安装

    前言 本章你将学习到 Gradle的介绍 Gradle的安装 Gradle的hello world 1 Gradle的介绍 Gradle是专注于灵活性和性能的开源构建自动化工具 Gradle构建脚本是 ...

  8. Nginx反代MogileFS集群

    上一篇博文我们主要聊了下分布式文件系统MogileFS的组件以及部署使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13677279.html:今天我们主要 ...

  9. Shell编程(5)

    文本处理三剑客 在 Shell 下使用这些正则表达式处理文本最多的命令有下面几个工具:                 命令                描述 grep 默认不支持扩展表达式,加-E ...

  10. openstack核心组件——horizon Web管理界面(10)

    一.horizon 介绍: 理解 horizon Horizon 为 Openstack 提供一个 WEB 前端的管理界面 (UI 服务 )通过 Horizone 所提供的 DashBoard 服务 ...