npoi

xBIM 基础15 IFC导出Excel报表

家住魔仙堡 提交于 2020-11-16 08:07:17
系列目录 【已更新最新开发文章,点击查看详细】   IFC导出Excel空间报表文件   本篇将向您展示从IFC文件读取数据所需的一些概念。它使用IFC4接口,适用于IFC2x3和IFC4型号。要创建Excel文件,我们使用 NPOI 。在这个例子中你只需要 xBIM Essentials 组件。包含样本数据的所有代码均可 在此处获得 。 此示例的结果如下所示: 您将需要以下 using 声明: using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System.Diagnostics; using System.IO; using System.Linq; using Xbim.Ifc; using Xbim.Ifc4.Interfaces; 主要功能如下: // 从模板初始化NPOI工作簿 var workbook = new XSSFWorkbook( " template.xlsx " ); var sheet = workbook.GetSheet( " Spaces " ); // 用单位创建漂亮的数字格式。 现实中需要更多的关心的是单位。 // 我们只知道我们现在的模型有空间面积以立方米和空间体积为单位 // 请注意从Revit导出的原始数据是错误的,因为数据量比应该大1000倍。 // 在这个例子中

Magicodes.IE 3.0重磅设计畅谈

百般思念 提交于 2020-11-15 14:00:18
Magicodes.IE 3.0重磅设计畅谈 总体设计图 Magicodes.IE导入导出通用库,支持Dto导入导出、模板导出、花式导出以及动态导出,支持Excel、Csv、Word、Pdf和Html。 IE在去年年底重构一次之后,经过这么长时间的迭代,又迎来了瓶颈。根据本人和HueiFeng的交流,我们决定逐步暂缓小版本的研发,开始IE 3.0的研发和重构之旅。这一次3.0的设计,我们主要考虑了以下方面: 主要解决痛点 在之前的版本迭代中,我们遗留了一些痛点一直并没得到很好的解决,同时我们也有一些想法,也没来及处理: 1.更友好的本地化支持,以及统一的多语言配置。 在之前的版本中,我们虽然可以通过筛选器实现,但是并不太友好。 2.进一步简化和加强动态导出。 动态选择列导出在很多业务中比较常见,我们希望通过更简单的API给用户提供更强大的动态导出功能,而无需用户动态建立DTO并且转换数据类型。 3.合并列头。 4.单元格合并。 目前主要考虑同一个值自动合并的功能。 5.重构并重新定义样式。 支持用户能够非常便捷的定义表样式、列样式(包含列宽、固定列)、行样式(包含行高)以及单元格样式(包含高宽、背景)。 6.脱离特性类重构底层导入导出的最基础的API。 以便支持除了特性类导入导出之外,还支持动态导出以及JSON、XML配置导出。 7.提供更多更简单的钩子函数

[开源] .Net ORM FreeSql 1.10.0 稳步向前

我怕爱的太早我们不能终老 提交于 2020-10-27 12:46:25
写在开头 FreeSql 是 .NET 开源生态下的 ORM 轮子,转眼快两年了,说真的开源不容易(只有经历过才明白)。今天带点干货和湿货给大家,先说下湿货。 认识我的人,知道 CSRedisCore 是我写的另外一个开源组件,这个项目是 2016 年从 ctstone/csredis 项目 clone 到自己工作的项目中,修改源码经过一年多生产考验,于 2017 年发布开源 https://github.com/2881099/csredis ctstone/csredis 项目于 2014 年停止了更新,到我手里完善的功能如下: 连接池 哨兵高可用 集群 redis 2.8 以上的版本命令补充,包括 Geo、Stream 通讯协议 bug 修复 暂时想到的只有这些,之后可能再补充。FreeSql 文章标题为什么要来说 csredis? 这两年的时间里 95% 精力都用在了 FreeSql 上面, 5400+ 单元测试、支持十几种数据库适配,渣男辜负了 csredis 这个项目。最近一个多月开源圈子的奇葩事接二连三,居然有人跑去 ctstone/csredis 原作者的 issues 告我的状,这个告状的人还是 NOPI 原作者,因为当初他自己不维护 NPOI .NET Core 版本了,社区有好人把 .NET Core 版本测试做好了开源(dotnetcore/NPOI)

HSSFworkbook,XSSFworkbook,SXSSFworkbook区别总结

浪尽此生 提交于 2020-08-17 02:58:41
今天使用了npoi的HSSFWorkbook导出excel,却出现文件损坏或扩展名不对错误,后来发现后缀只要是“xls”就可以了。 npoi只是java poi的实现版,因此HSSFworkbook,XSSFworkbook,SXSSFworkbook这三种的区别在npoi中同理。 下面转自: https://blog.csdn.net/YiQ2018/article/details/81458149 用JavaPOI导出Excel时,我们需要考虑到Excel版本及数据量的问题。针对不同的Excel版本,要采用不同的工具类,如果使用错了,会出现错误信息。JavaPOI导出Excel有三种形式,他们分别是1.HSSFWorkbook 2.XSSFWorkbook 3.SXSSFWorkbook。 HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls; XSSFWorkbook:是操作Excel2007后的版本,扩展名是.xlsx; SXSSFWorkbook:是操作Excel2007后的版本,扩展名是.xlsx; 第一种:HSSFWorkbook poi导出excel最常用的方式;但是此种方式的局限就是导出的行数至多为65535行,超出65536条后系统就会报错。此方式因为行数不足七万行所以一般不会发生内存不足的情况(OOM)。 第二种

NPOI封装通用的导出模板

佐手、 提交于 2020-08-15 18:32:19
  在后台管理系统中导出Excel功能是必不可少的,该模板可以帮助我们简单优雅的实现导出功能,支持导出大数据。封装如下:   public class NPOIExcelExporterBase { protected ICellStyle HeadStyle { get ; set ; } protected ICellStyle TextStyle { get ; set ; } /// <summary> /// 创建Excel 文件 /// </summary> /// <param name="fileName"> Excel文件名 </param> /// <param name="creator"> 委托 </param> /// <returns></returns> protected string CreateExcel( string fileName, Action<IWorkbook> creator) { var wb = new XSSFWorkbook(); var sWorkbook = new SXSSFWorkbook(wb, 1000 ); var outputFilePath = "" ; try { HeadStyle = DefaultHeaderCellStyle(sWorkbook); TextStyle =

将DataTable导出为Excel C#

一个人想着一个人 提交于 2020-08-11 07:00:30
/// <summary> /// 导出Excel /// </summary> /// <param name="dt">DataTable</param> protected void ExportExcel(DataTable dt) { if (dt == null || dt.Rows.Count == 0) return; Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null) { return; } System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks; Microsoft.Office.Interop

将DataTable导出为Excel C#

耗尽温柔 提交于 2020-08-11 04:32:23
/// <summary> /// 导出Excel /// </summary> /// <param name="dt">DataTable</param> protected void ExportExcel(DataTable dt) { if (dt == null || dt.Rows.Count == 0) return; Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null) { return; } System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks; Microsoft.Office.Interop

将DataTable导出为Excel C#

瘦欲@ 提交于 2020-08-10 14:01:42
/// <summary> /// 导出Excel /// </summary> /// <param name="dt">DataTable</param> protected void ExportExcel(DataTable dt) { if (dt == null || dt.Rows.Count == 0) return; Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null) { return; } System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US"); Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks; Microsoft.Office.Interop

Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析(完)

一曲冷凌霜 提交于 2020-08-06 10:26:56
【题外话】 这是这个系列的最后一篇文章了,为了不让自己觉得少点什么,顺便让自己感觉完美一些,就再把OOXML说一下吧。不过说实话,OOXML真的太容易解析了,而且这方面的文档包括成熟的开源类库也特别特别特别的多,所以我就稍微说一下,文章中引用了不少的链接,感兴趣的话可以深入了解下。 【系列索引】 Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析(一) 获取Office二进制文档的DocumentSummaryInformation以及SummaryInformation Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析(二) 获取Word二进制文档(.doc)的文字内容(包括正文、页眉、页脚、批注等等) Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析(三) 详细介绍Office二进制文档中的存储结构,以及获取PowerPoint二进制文档(.ppt)的文字内容 Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析(完) 介绍Office Open XML文档(.docx、.pptx)如何进行解析以及解析Office文件常见开源类库 【文章索引】 初见Office

POI AutoSizeColumn() 性能瓶颈

心不动则不痛 提交于 2020-07-29 09:50:28
今天使用npoi导出excel,数据三万以上,等了五六分钟没导完,调试发现瓶颈在AutoSizeColumn()方法,网上一搜 https://bz.apache.org/bugzilla/show_bug.cgi?id=58896 ,讨论话题是 当有单元格合并, AutoSizeColumn()就会效率超级超级超级无敌无敌无敌低 ,至于参数useMergedCells,貌似没有作用。 现在只用 SetColumnWidth 调节宽度,没有毛病,很快。 来源: oschina 链接: https://my.oschina.net/u/4397718/blog/4313312