C#NPOI操作Excel手册
NPOI,顾名思义,就是POI的.NET版本。那POI又是什么呢?POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件,支持的文件格式包括xls, doc, ppt等。 NPOI有几大优势 第一,完全基于.NET 2.0,而非.NET 3.0/3.5。 第二,读写速度快 第三,稳定性好(相对于用Office OIA而言,毕竟那东西是基于Automation做的,在Server上跑个Automation的东西,想想都觉得可怕),跑过了将近1000个测试用例(来自于POI的testcase目录) 第四,API简单易用,当然这得感谢POI的设计师们 第五,完美支持Excel 2003格式(据说myxls无法正确读取xls模板,但NPOI可以),以后也许是所有Office 2003格式 【NPOI 操作Excel手册】详解 NPOI是一个专为.NET平台设计的开源库,它是Apache POI项目的.NET版本。POI是Java社区的一个著名项目,它允许开发者在不依赖Microsoft Office的情况下读写Office 97-2003格式的文件,如xls、doc和ppt。NPOI具有以下显著特点: 1. **兼容性**:NPOI完全基于.NET Framework 2.0,这意味着它可以运行在较旧的.NET环境中,而不依赖于3.0或3.5版本。 2. **性能**:NPOI在读写速度上表现出色,对于大量数据处理来说,这是一项重要的优势。 3. **稳定性**:相比于使用Office OIA(Automation)进行操作,NPOI的稳定性更高,因为它避免了在服务器环境中运行Automation可能带来的风险。 4. **API易用性**:NPOI的API设计简洁,易于理解和使用,使得开发者能快速上手。 5. **格式支持**:NPOI对Excel 2003格式的支持非常完善,甚至优于某些其他库,如myxls,它无法正确处理某些xls模板,而NPOI则不存在这个问题。 NPOI包含多个组件,每个组件都有特定的功能: - **NPOI.Util**:基础辅助库,提供一些通用工具和功能。 - **NPOI.POIFS**:用于读写OLE2格式文件,这是Microsoft Office文档的基础。 - **NPOI.DDF**:处理Microsoft Drawing格式,用于图形和图像。 - **NPOI.SS**:包含Excel公式计算的相关功能。 - **NPOI.HPSF**:处理OLE2的Summary Information和Document Summary Information属性,提供了元数据的读写。 - **NPOI.HSSF**:专门处理Excel的BIFF格式,用于读写.xls文件。 在实际操作中,创建一个Workbook(Excel文件)的步骤如下: 1. 引用所需的NPOI组件,例如NPOI.HSSF.UserModel和NPOI.HSSF.Util。 2. 初始化`HSSFWorkbook`实例来创建新的.xls文件,但必须注意,一个Workbook至少需要包含一个Sheet。 3. 使用`CreateSheet`方法创建Sheet,例如`HSSFSheet sheet = hssfworkbook.CreateSheet("new sheet");`。 4. 通过`Write`方法将Workbook写入文件,如`hssfworkbook.Write(file);`,并确保关闭文件流。 此外,为了创建完整的Excel文件,还需要添加DocumentSummaryInformation和SummaryInformation。这两个部分包含了文件的元数据,如作者、主题和关键词等。创建它们的代码如下: ```csharp PropertySetFactory propertySetFactory = new PropertySetFactory(); DocumentSummaryInformation dsi = propertySetFactory.CreateDocumentSummaryInformation(); dsi.Company = "Your Company"; // 更多设置... SummaryInformation si = propertySetFactory.CreateSummaryInformation(); si.Subject = "Your Subject"; // 更多设置... // 将DocumentSummaryInformation和SummaryInformation写入文件 POIFSFileSystem poifs = new POIFSFileSystem(); poifs.CreateDocument(dsi.Serialize(), DocumentSummaryInformation.DEFAULT_STREAM_NAME); poifs.CreateDocument(si.Serialize(), SummaryInformation.DEFAULT_STREAM_NAME); // 将Workbook和元数据一起写入文件 using (FileStream file = new FileStream(@"test.xls", FileMode.Create)) { poifs.Root.AddEntry(new POIFSDocument("Workbook", hssfworkbook.GetStream())); poifs.WriteFileHeader(file); poifs.WriteBlocks(file); } ``` 通过以上步骤,你可以创建一个包含完整元数据的、符合Excel标准的.xls文件。NPOI不仅提供了创建新文件的能力,还能读取和修改现有文件,这对于自动化数据处理、报表生成、数据分析等场景非常有用。其丰富的API使得在.NET环境中处理Excel文件变得轻而易举。
剩余63页未读,继续阅读
- 六月星2019-05-15很实用,而且很好。
- cheng016372023-01-31说明详细,能给与很大帮助。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助