`

我在使用 NPOI 时遇到的问题 - CellStyle (引用同一个实例)

阅读更多

NPOI 版本信息:

Binary: 2.1.3.1

Source Code: https://github.com/tonyqus/npoi (2015-06-15)

 

本期问题:CellStyle (引用同一个实例)

介绍 NPOI 中设置单元格样式时,网上大部分示例都是创建一个新的 ICellStyle,并将其赋给 Cell 的 CellStyle 属性。

 

一般操作量较少时都没什么问题。但是当重复次数很多时,会导致无法再创建新的 ICellStyle。(貌似一个 Workbook 允许的 CellStyle 数量最大值在4000左右)。

 

一般,(Office 文件本身结构设计)一个 Workbook 中会有一些 Cell 具有相同的 CellStyle。这些 Cell 会引用同一个 CellStyle 实例(准确的说是同一条格式记录数据),而不是每个 Cell 各自 hold 住一个。很多属性都是通过这种方式设置的,如颜色,字体等。应该尽量重用这些已有的实例

 

某些情况会比较麻烦:

a) 如果获取某个 Cell 的 CellStyle 属性,并对该 ICellStyle 实例做修改,会导致相应的记录格式的那条数据被修改,导致所有引用该数据的单元格样式都随之更改。

 

b) 如果创建新的 CellStyle 并赋给 Cell,会替换原来的样式数据。如果只想修改部分样式,并保留所有其它样式,就不得不复制所有这些需要保留的子项。

 

如何才能方便地设置单元格样式,并尽量减少相同样式的冗余是比较麻烦的。一般较好的做法是:把样式设置等(静态部分)在 Office 工具中完成(设置模板),程序(动态部分)载入模板文件,只做一些值的填充工作。

分享到:
评论

相关推荐

    NPOI导入导出实例

    这个“NPOI导入导出实例”项目提供了一个实际操作的例子,展示了如何使用NPOI在.NET环境中读取、修改和创建Excel文件。以下是对NPOI库及其在导入导出操作中的应用进行的详细解释。 1. **NPOI介绍**: NPOI是一个与...

    c#源码NPOI常用方法使用实例

    这个"**c#源码NPOI常用方法使用实例**"应该是一个包含多种NPOI操作Excel的示例代码集合,帮助开发者快速理解和应用NPOI库。 在C#中,NPOI库提供了以下关键功能: 1. **读取Excel文件(HSSFWorkbook/XSSFWorkbook)...

    NPOI使用手册 试用说明 操作教程 最新版

    NPOI是一个强大的开源库,主要用于处理Microsoft Office文档,尤其是Excel文件。在C#和ASP.NET开发中,NPOI提供了高效且灵活的方式来读写XLS和XLSX格式的Excel文件,使得开发者无需依赖Microsoft Office组件即可进行...

    NPOI excel C#导入导出实例

    NPOI是一个强大的开源库,专门用于处理Microsoft Office文件,如Excel,在.NET环境中,特别是C#编程语言下。本教程将深入探讨如何使用NPOI进行Excel文件的导入与导出操作,帮助开发者提高效率,避免繁琐的手动处理。...

    NPOI组件的使用和例子

    NPOI组件是.NET平台上一个强大的库,专用于处理Microsoft Office文档,特别是Excel。这个组件使得开发者能够在不依赖Microsoft Office的情况下读写Excel文件,极大地提高了数据处理和导出的效率。下面将详细介绍NPOI...

    NPOI导出复杂格式Excel

    NPOI是一个强大的开源库,专门用于处理Microsoft Office文件,特别是Excel文档。它在.NET环境中提供了与Apache POI类似的API,使开发者能够方便地读取、写入和修改Excel文件。在这个“NPOI导出复杂格式Excel”的示例...

    C# NPOI 导出Excel

    在.NET开发环境中,如果你需要在C#程序中生成、读取或修改Excel文件,NPOI是一个理想的选择。本资源提供的"004ExportExcelDemo"示例将帮助你了解如何使用NPOI来导出Excel数据。 首先,让我们了解一下NPOI的基本概念...

    Npoi2.4.1 读取写入Excel

    5. **Unity集成**: 虽然Unity主要是一个游戏开发引擎,但通过使用.NET框架,Npoi也可在Unity项目中应用。不过要注意,由于Unity对.NET版本的支持有限,可能需要使用Npoi的旧版本或者依赖于第三方解决方案(如Excel...

    NPOI的实例

    NPOI是一个强大的开源库,主要用于处理Microsoft Office文件格式,如Excel、Word和PowerPoint。在.NET环境中,NPOI提供了方便的API,允许开发者读取、写入以及操作这些文件,而无需安装Microsoft Office。在VS2010中...

    NPOI打包文件和程序操作实例

    NPOI是一个强大的开源库,主要用于处理Microsoft Office文档,尤其是Excel文件。在.NET环境中,它提供了方便的API,使得开发者可以轻松地进行Excel文件的读取、创建、修改和保存等操作,而无需安装Microsoft Office...

    NPOI调用实现同一个表格的不同sheet记录数据

    NPOI是一个非常流行的.NET库,它允许开发者在C#或VB.NET等.NET环境中操作Microsoft Office文件,包括读取和写入Excel文件。在这个场景中,我们将深入探讨如何使用NPOI来实现“在同一Excel表格的不同sheet中记录数据...

    NPOI_DLL开发

    10. **异常处理**:在进行NPOI操作时,要特别注意处理可能出现的异常,如文件不存在、格式不正确、内存不足等问题。良好的异常处理可以确保程序的健壮性。 通过理解和熟练运用这些知识点,开发者可以使用NPOI高效地...

    PublicMethod_NPOI封装_npoi_c#arcengine_基于NPOI封装C#_

    在这里,"arcengine"可能指的是ArcGIS Engine,一个用于创建地理信息系统应用的开发工具,但在这个上下文中,它并未直接与NPOI的使用关联。 描述中的"个人常用封装好的函数"意味着作者已经编写了一系列方便使用的C#...

    NPOI对word和excel文件的输出(全套资料)

    本套资料包含NPOI.dll,这是NPOI库的动态链接库文件,可以直接在你的.NET项目中引用以使用其功能;培训文档,用于指导如何使用NPOI;以及项目实例,提供了具体的代码示例来帮助理解和应用NPOI。 1. **NPOI的基本...

    NPOI.rar NPOI C# 调用导出xlsx文件

    2. 创建工作簿:使用`new XSSFWorkbook()`创建一个新的XLSX工作簿实例。 3. 添加工作表:调用`workbook.CreateSheet("Sheet1")`创建名为"Sheet1"的工作表。 4. 插入数据:遍历数据源,为每个数据项创建一行并设置...

    npoi操作EXCEL类与相关DLL文件

    在这个场景中,"npoi操作EXCEL类与相关DLL文件"的描述表明你将获得一个使用NPOI进行Excel操作的示例代码,以及适用于.NET Framework 3.5的NPOI库的DLL文件。 首先,让我们深入了解NPOI的核心概念和功能: 1. **...

    NPOI_3.5(2.1).zip

    10. **错误处理**:NPOI库在遇到非法数据或格式问题时,会抛出异常,帮助开发者定位和解决问题。 总的来说,"NPOI_3.5(2.1).zip"包含的资源可能是NPOI库的源码、示例代码、文档或者预编译的DLL文件,这些都能帮助...

    NPOI.ExcelOperation.rar

    NPOI是一个强大的.NET库,专门用于处理Microsoft Office文件,特别是Excel文档。它允许开发者在没有安装Microsoft Office的情况下,对Excel...如果你在使用过程中遇到问题,可以查阅NPOI的官方文档或在线社区寻求帮助。

    NPOI的dll资源文件

    综上所述,NPOI是一个功能强大的库,能够方便地处理Excel文件,尤其在需要进行多Sheet导出时,其高效性和易用性使其成为.NET开发者的重要工具。通过熟练掌握上述知识点,你将能够利用NPOI实现各种复杂的Excel操作。

    c#运用NPOI以及Excel处理数据保存报表

    NPOI是一个开源库,专门为.NET开发者提供了处理Microsoft Office文件(如Excel)的能力,无需依赖Office组件。本篇文章将深入探讨如何在C#中利用NPOI库来读取、操作和保存Excel数据,从而实现报表的生成与处理。 ...

Global site tag (gtag.js) - Google Analytics