本库进行了重写,如果需要请转移到下文查看: https://www.cnblogs.com/holdengong/p/10889780.html 框架与依赖 框架:.NET Standard 2.0 依赖:DotNetCore.NPOI https://github.com/dotnetcore/NPOI http://www.cnblogs.com/savorboard/p/netcore-npoi.html Excel导入(ExcelImportService) 导出模板 校验数据 正则表达…
概要 NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作. NPOI的优势 1)免费开源 2)包含了大部分EXCEL的特性(单元格样式.数据格式.公式等等) 3)支持多种文件格式(xls/xlsx/doc/docx) 4)采用面向接口的设计架构( 可以查看 NPOI.SS 的命名空间) 5)支持文件的导入…
并发编程概述   前言 说实话,在我软件开发的头两年几乎不考虑并发编程,请求与响应把业务逻辑尽快完成一个星期的任务能两天完成绝不拖三天(剩下时间各种浪),根本不会考虑性能问题(能接受范围内).但随着工作内容的变化,一些问题,它的解决方案已经让我避不开并发编程这一块知识点了.为了一劳永逸,此系列与并发编程有关的系列文章诞生,希望对各有有所帮助.   基础术语 同步(synchronization):关于协调线程或进程之间的活动,并确保被多个线程或进程访问的数据一直有效,同步允许线程和进程一致地操作…
通过NPOI对Excel进行操作,这里主要是读取的操作.封装到ExcelHelper操作类中. 1 using System.Collections.Generic; 2 using NPOI.HSSF.UserModel; 3 using NPOI.SS.UserModel; 4 using NPOI.XSSF.UserModel; 5 using System.IO; 6 using System.Data; 7 using System; 8 9 namespace CommonHelpe…
#region 从Excel导入 //用法 //var cellHeader = new Dictionary<string, string>(); //cellHeader.Add("dpdm","中文"); // cellHeader.Add("dpmc", "中文"); // cellHeader.Add("xz", "xz"); // cellHeader.Add(&…
1. 关于NPOI NPOI是一个开源的用于在C#程序中读写Excel.WORD等微软OLE2组件文档的项目,使用NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作. 2. 使用NPOI的好处 C#程序中操作Excel的另外一种方法是使用.NET自带的Excel API,但是这种方法需要运行环境安装微软的Excel,而使用NPOI可以在没有安装Microsoft Office Excel的设备上对Excel进行操作. 因为服务器一般不安装office这么庞大的办公软…
配置读取 .net core下读取配置还是有点麻烦的,本身没有System.Configuration.dll,所以在进行配置前需要自行引用Microsoft.Extensions.Configuration,如下: 这样的话我们就可以配置读取的相关编码了,比如我们数据库的链接字符串,在appsettings.json添加对应的数据库配置: "ConnectionStrings": { "TestDb": "server=localhost;port=33…
一.Excel理论知识 最新版NPOI2.4.1链接:https://pan.baidu.com/s/1iTgJi2hGsRQHyw2S_4dIUw  提取码:adnq • 整个Excel表格叫做工作簿:WorkBook • 工作簿由以下几部分组成 a.页(Sheet); b.行(Row); c.单元格(Cell); 二.处理Excel的技术 •OLE Automation:程序启动一个Excel进程,然后和Excel进程进行通讯来运行Excel的操作. 优点:强大,Excel能实现的功能,都可…
在上一篇文章[关于大数据的查询与导出]中,提到了使用NPOI组件导出Excel,本想上次一起分享给大家,无奈最近比较忙,今天抽空整理了下,分享出来. 预置填充模板,并且需要支持公式计算; 可导入图片; 可以追加数据形式填充表格. 简单分一下这个功能. 需要处理模板的读取,并根据模板中指定特定适配符替换模板中的数据,需要处理三种类型的单元格的格式化:散列单元格,图片单元格,数据明细区单元格; 散列单元格: 需要定义具体的模板字符串,及期望格式化后的数据,姑且将这里处理散列单元格的对象 命名为 Di…
一.引子 新进公司被安排处理系统的数据报表任务——对学生的考试成绩进行统计并能导出到excel.虽然以前也有弄过,但感觉不是很好,所以这次狠下心,多花点时间作个让自己满意的插件. 二.适用领域 因为需求是基于学生成绩,可能更多的是按这样的需求去考虑.如下图(请不要计较数据): 三.逻辑 一个excel文件 --> N个工作表 --> N个数据容器-->N个数据内容 四.类的组成 WorkbookWrapper(抽象类) excel容器,一个实例代表一个excel文件 BuildConte…
从Excel导入数据最令人头疼的是数据格式的兼容性,特别是日期类型的兼容性.为了能够无脑导入日期,折腾了一天的NPOI.在经过测试确实可以导入任意格式的合法日期后,写下这篇小文,与大家共享.完整代码请移步:https://github.com/xuanbg/Utility 2016-11-13 04:06 修正一个bug.由try DateCellValue改为判断列数据类型,如类型为DateTiime返回DateCellValue,否则返回NumericCellValue或StringCell…
1.NuGet直接安装NPOI程序包: 2. using NPOI.XSSF.UserModel; 3.导出Excel代码: private void TsbExport2ExcelClick(object sender, EventArgs e) { //获取qrkey ToolStripButton tsbFiterBy = ((ToolStripButton)sender); long qryRKEY = Convert.ToInt64(tsbFiterBy.Name.Replace("T…
这里只写MVC下的情况 public ActionResult Index() { var path = Server.MapPath(@"/content/user.xlsx"); var dt= ExcelToDataTable(true, path); List<User> list = new List<User>(); foreach (DataRow item in dt.Rows) { list.Add(new User(){ No=Convert…
之前的基于DispatchProxy的AOP组件,实现了属性注入,但是这个依旧有很多限制 比如不支持构造器注入,继承DispatchProxy的子类必须是公开类 个人有点代码洁癖,不喜欢这种不能控制的方式,就学了几天Emit,参考了诸多前辈代码 比如智慧和美貌的化身L大(Lemon)的著作AspectCore的一些设计和实现 从从.Net Framework上把代码逻辑跑成功了,再迁移.Net Core,再加上依赖注入对项目再次解耦 代码内有引用L大的AspectCore的反射扩展做优化,我这人…
概述 支持多sheet导入导出.导出字段过滤.特性配置导入验证,非空验证,唯一验证,错误标注等 用于基础配置和普通报表的导入导出,对于复杂需求,比如合并列,公式,导出图片等暂不支持 GitHub地址: https://github.com/Mike-Zrw/ExcelHelper/tree/master 导出配置支持 HeaderStyleAttribute :列名样式,(颜色,字体,大小,加粗) StringFormatterAttribute :格式化时间 ColumnWidthAttrib…
QueryInfo dataInfo = new QueryInfo(); dataInfo.CustomSQL = $@" select t1.name name,t1.url url from sys_menu t1 start with t1.parent_id = ( select t2.id from sys_menu t2 where t2.name ='交易源数据' ) connect by t1.parent_id=t1.id "; var descpsInfo = n…
最近搭框架用的openpyxl 2.5.4版本,之前封装的函数有些提示不推荐使用了,我做了一些更新: 代码: # encoding=utf-8 from openpyxl import load_workbookfrom openpyxl.styles import Border, Side, Fontimport time class parseExcel(object):    def __init__(self, excelPath):        self.excelPath = ex…
原文:.net core下对于Excel的一些操作及使用 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/jayshehe/article/details/79796640 在上一篇[.net core下配置.数据库访问等操作实现]主要介绍了读取配置,数据库操作的一些方法实例,本篇主要介绍下 .net core下针对Excel的相关操作. 对于后台相关的管理系统,Excel导出是基本的功能…
Web开发工作中经常要根据业务的需要生成对应的报表.经常采用的方法如下: 将DataTable导出至Excel文件; 读取模板Excel文件; 修改模板Excel文件对应的内容. 因此,便想到封装一个基于NPOI的Excel操作类(至于为什么不用Excel组件,那是因为Excel组件效率低且必须安装Office),所完成的功能大致如上所示,这样平时的报表开发效率就比原来高效很多. 首先是DataTable导出至Excel文件,代码关键部分有注释说明,具体代码如下所示: /// <summary>…
  前端使用的vue-element-admin框架,后端使用ABP框架,Excel导出使用的Magicodes.IE.Excel.Abp库.Excel导入和导出操作几乎一样,不再介绍.文本主要介绍Excel导出操作和过程中遇到的坑,主要是Excel文件导出后无法打开的问题. 一.Magicodes.IE库 1.Magicodes.IE库介绍   Magicodes.IE是一个导入导出的通用库,它支持Dto导入导出.模板导出.花式导出以及动态导出,支持Excel.Csv.Word.Pdf和Htm…
最终还是要使用NPOi了.刚开始做的是用com组件,发现如果本机不按照excel就不能使用,后来把其中一支改为了用Itextsharp产生pdf,但是还有几支批次要产生Excel,只能改用NPOI了.不过这也是一种学习了,呵呵,3种方法都用到了. 在文章开始必须先申明,我的NPOI组件版本为1.2.4 1.谈谈我用到Com组件和NPOi组件的感觉 >NPOI不用安装Excel,这也是我要换NPOI的主要原因 >NPOi组件产生Excel的速度明显感觉比COM组件快 >NPOI对Excel…
Excel生成操作类: 代码 using System; using System.Collections.Generic; using System.Text; using System.IO; using NPOI; using NPOI.HPSF; using NPOI.HSSF; using NPOI.HSSF.UserModel; using System.Data; namespace StarTech.NPOI { /// <summary> /// Excel生成操作类 ///…
ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案   ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不大,但从内部运行方式上来说,差别还是很大的.上一篇详细介绍了原版路由方案的运行机制,本文仍然通过一幅图来了解一下新版的运行机制,最后再总结一下二者的异同点.(ASP.NET Core 系列目录) 一.概述 此方案从2.2版本开始,被称作终结点路由(下文以“新版”称呼),它是默认开启的,若想采用原来的…
前言: 最近使用NPOI做了个导出Word文档的功能,关于使用.NET Core 导出Word文档的方式有很多.最终我为什么选择了NPOI来实现了这个功能,首先是NPOI是一个开源,免费且容易上手的第三方框架(并且现在已支持.NET Core,GitHub源码地址:https://github.com/tonyqus/npoi).因为之前使用NPOI导出Execl比较多,这次第一次使用NPOI 来导出Word文档还真没有什么头绪.首先看了下GItHub中的源码有一个简单Word导出的示例,然后在…
概述 NPOI,顾名思义,就是POI的.NET版本.NPOI就是用.NET语言编写的一套数据导出Excel的开源项目,支持XML.xls.xlsx.ppt等格式..NET不仅实现Excel导出还可以实现Excel导入,读取Excel的数据. 实现 1.通过nuget,添加NPOI组件1.2以上对应的DLL文件: 2.编写如下Nopi封装类,该类实现如下功能点 1> 该类实现数据的超过65535自动分写下一个sheet: 2> 该类实现Web数据导出和文件保存到本地: 3> 该类实现Exc…
上周六我发表的文章<分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility>受到了大家的热烈支持与推荐,再此表示感谢,该ExcelUtility类库自上次发文起,又经过了多次的改进,增加了许多的功能与方法,可以全面满足大家的需求,下面先来看一下新方法的测试结果: 第一个新增功能,列宽自适应,当超过30个字符则将单元格内容设为换行 任意一个无模板的导出方法均支持该功能,示例代码如下: /// <summary> /// 测试方法:测试将Da…
1. ExcelUtility功能:  1.将数据导出到EXCEL(支持XLS,XLSX,支持多种类型模板,支持列宽自适应)  类名:ExcelUtility. Export  2.将EXCEL数据导入到数据对象中(DataTable.Dataset,支持XLS,XLSX)  类名:ExcelUtility. Import 类库项目文件结构如下图示: 2. ExcelUtility依赖组件:  1.NPOI 操作EXCEL核心类库  2.NPOI.Extend NPOI扩展功能 …
POI 是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 的文件,支持的文件格式包括xls, doc, ppt等. NPOI 是POI的.net 版本. 最新版本是  杨晓东 Savorboard  移植的 .net core 2.0 版本.具体使用方法与原有版本一致 原作者是 瞿杰  相对于NPOI,还有EPPlus 和 DocX (作者Cathal Coffery) 参考 瞿杰 自己的blogs NPOI及相关.NET开源项目近况 (2014-03-…
对于EXCEL的导入.导出,我之前已分享过多次,比如: 第一种方案:<我写的一个ExcelHelper通用类,可用于读取或生成数据>这个主要是利用把EXCEL当成一个DB来进行获取数据,导出则是采用拼接成HTML TABLE的方式,这种在ASP.NET,ASP.NET CORE 中也是可以的,简单方便,依赖Office Excel组件,仅适用于网站服务端. 推荐指数:♥♥♥ 第二种方案:<MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult&g…
ExcelUtility 类库经过我(梦在旅途)近期不断的优化与新增功能,现已基本趋向稳定,功能上也基本可以满足绝大部份的EXCEL导出需求,该类库已在我们公司大型ERP系统全面使用,效果不错,今天应用户的特殊需求,我又新增了一个功能,导出时动态生成多Sheet EXCEL. 新增方法一:由GetFormatterContainer Func委托导出基于EXCEL模板的多Sheet文件,方法定义如下: /// <summary> /// 由GetFormatterContainer Func委…