(我文笔太烂,就当练手了)
NPOI 版本信息:
Binary: 2.1.3.1
Source Code: https://github.com/tonyqus/npoi (2015-06-15)
最近想改善某个项目中操作 Excel 文件的性能,于是重新开始研究 NPOI。
- 为什么是“重新”?
以前试用过 NPOI,实现过一些很基础的功能,但因为某些原因,一直用 Microsoft.Office.Interop.Excel。
- 为什么是“研究”?
因为 NPOI 的很多功能都有待实现/改善,帮助文档也不完善。甚至为了实现某些功能,不得不花点时间去翻一翻 NPOI 的源码。
github 上的例子很有用,可以少走很多弯路。
本期问题:Sheet Tab Color
> 接口 NPOI.SS.UserModel.ISheet 中定义了相关属性:
short TabColorIndex { get; set; }
> 但是,XSSFSheet (.xlsx 文件中的 Sheet)中还未实现 :
public short TabColorIndex { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } }
不过,XSSFSheet 中有一个方法可以设置 Tab Color:
public void SetTabColor(int colorIndex)
但是没有方法获取 Tab Color。
(为什么不把 SetTabColor 这个方法放到 TabColorIndex 里?难道这个方法性能还不够格,不适合作为属性?)
> HSSFSheet (.xls 文件中的 Sheet)实现了属性 TabColorIndex。
看上去一切正常。
但是如果 Sheet 是从已有的文件载入的,且 Sheet 的 Tab Color 从未设置过,那就接好 NullReferenceException 吧。
因为,Tab Color 的信息存放在 HSSFSheet -> _sheet (NPOI.HSSF.Model.InternalSheet) -> sheetext (NPOI.HSSF.Record.SheetExtRecord) 中。NPOI 在载入 HSSFSheet 时,如果 Tab Color 从未设置过,就不会去创建 sheetext,sheetext 一直是 null。
(
当然也可以通过反射,先创建一个 SheetExtRecord 实例,赋给 sheetext,再将 sheetext 插入到 _sheet 的 Records 里。
一般插入位置是倒数第2个。最后一个 record 项存的应该是 EOF,表示文件末尾。如果插入到其它位置,可能会导致无法生效,甚至在 Microsoft Office Excel 中打开时发出警告。
)
如果 Sheet 最初是通过 NPOI 创建的(IWorkbook.CreateSheet),那么 NPOI 会自动创建 sheetext,并且保存到文件时会把 sheetext 的信息一并写入,下次载入该 Sheet,sheetext 就不会是 null。
相关推荐
首先看了下GItHub中的源码有一个简单Word导出的示例,然后在看了网上有很多关于NPOI导出Word文档的案例,发现一个特点网上的好像都差不多,对于我而言网上的这些案例完全能够实现我的这个功能,但是感觉看了网上这些...
NPOI 是 POI 项目的 .NET... 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作。
C# 用NPOI导出多个sheet页的Excel,sheet页名称可以自定义
NPOI 2.5.1.0版本,为目前最新版本 亲测可用! NPOI 是 POI 项目的 .NET 版本。POI是一个开源的C#,JAVA读写Excel、WORD等...使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。
使用NPOI对不需要的sheet进行隐藏操作,达到类似移除sheet的效果。
NPOI帮助文档(1.2.3版),是一个好用的Word操作控件的使用教程。
NPOI-2.4-稳定版
.net NPOI导出EXCEL多个sheet
What's NPOI This project is the .NET version of POI Java project at http://poi.apache.org/. POI is an open source project which can help you read/write xls, doc, ppt files. It has a wide application. ...
一些博客园内关于NPOI使用的文章 1.Npoi 使用总结 回顾 反思 - baidixing - 博客园 2.NPOI 菜鸟实践行之根据指定的模板生成Excel 2003格式的文件 (一) 3.杨新华 【原创】WinForm操作EXCEL(第三方插件NPOI) 4....
c# 基于NPOI对excel操作-附件资源
C#使用npoi操作office案例C#使用npoi操作office案例C#使用npoi操作office案例C#使用npoi操作office案例C#使用npoi操作office案例C#使用npoi操作office案例
处理Excel表格导出,字符处理,单元格处理,行距处理,让导出来的Excel表格看着舒心,很简单的操作就可以
利用利用NPOI 简单操作 Excel 通用于 c/s和b/s 架构的程序 (半原创)
使用NPOI库操作WORD模板文件。 C# 使用NPOI 生成WORD模板文件,只支持DOCX格式。 可以用于自动生成各种格式文档。支持图片,支持签名。 有问题可以联系我
本文实例讲述了C#使用NPOI导入Excel的方法。分享给大家供大家参考,具体如下: NPOI是由国人开发的一个进行excel操作的第三方库。百度百科介绍如下:NPOI 本文主要介绍如何使用NPOI将Excel数据读取。 首先引入程序集...
Excel-数据分类导出至多个Sheet NPOI.dll
Labview使用ActiveX操作Excel效率低下而且复杂,而且PC端必须安装Office... 使用NPOI插件效率高,无需安装Office,操作方便 使用C#封装调用方便,满足简单的读写操作
主要用于Win7系统或XP系统使用一些单机版WinForm程序 使用NPOI不用刻意的去装office软件导出 可以借鉴一下