NPOI的基本使用

article/2025/10/22 1:00:58

在NPOI初识中简了解了下NPOI的简介和优势,接下来看一下如果下载使用。新建一个小的Demo,如下:

第一步,新建一个控制台应用程序:

第二步,利用Nuget获取NPOI, 这里引用的2.4.1最稳定版本:

引用添加完成后,我们可以看到主要添加了四个dll的引用,在简介中,也介绍了四种dll的用途。

通过这几个dll,可以看出,NPOI的用途还是挺多的。

using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace NPOIDemo
{class Program{static void Main(string[] args){string path = AppDomain.CurrentDomain.BaseDirectory + "NPOIDemo.xlsx";IWorkbook workbook = null;try{using (var fs = new FileStream(path, FileMode.Open, FileAccess.ReadWrite)){// 实例化if (path.IndexOf(".xlsx") > 0) // 2007workbook = new XSSFWorkbook(fs);else if (path.IndexOf(".xls") > 0) // 2003workbook = new HSSFWorkbook(fs);// 查询if (workbook != null){ISheet sheet = workbook.GetSheetAt(0);for (int i = 0; i < 10; i++) // 遍历每一个行,然后读取第一个单元格的内容{if (sheet.GetRow(i) == null || sheet.GetRow(i).GetCell(0) == null) continue;Console.WriteLine(sheet.GetRow(i).GetCell(0).StringCellValue);}}}//把这个HSSFWorkbook实例写入文件// 增加sheetworkbook.CreateSheet("SheetZZH");FileStream file = new FileStream(path, FileMode.OpenOrCreate,FileAccess.ReadWrite);var sheet2 = workbook.GetSheet("SheetZZH");sheet2.CreateRow(0).CreateCell(0, CellType.String).SetCellValue("Sheet2Value1"); // 新增sheet2.GetRow(0).CreateCell(1, CellType.String).SetCellValue("Sheet2Value2"); // 新增sheet2.GetRow(0).CreateCell(2, CellType.String).SetCellValue("Sheet2Value3"); // 新增workbook.Write(file);file.Close();using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Write)){var value = sheet2.GetRow(0).GetCell(1).StringCellValue;Console.WriteLine("shee2 row 0 cell 1 is " + value);sheet2.GetRow(0).GetCell(1).SetCellValue("Sheet2Value2.2"); // 修改sheet2.GetRow(0).RemoveCell(sheet2.GetRow(0).GetCell(2)); // 删除workbook.Write(fs);fs.Close();}}catch (Exception ex){throw ex;}Console.WriteLine("Complete");Console.ReadLine();}}
}

 更多功能的使用,可参照该网址进行学习:NPOI使用手册

 原文地址:NPOI的基本使用 - 简书 (jianshu.com)

 

 


http://chatgpt.dhexx.cn/article/I6PNtcMt.shtml

相关文章

NOP (code)_NOP指令作用及解析

摘自&#xff1a;维基百科 NOP (code) 前言 在计算机科学中&#xff0c;NOP、no-op 或 NOOP&#xff08;发音为“no op”&#xff1b;no operation 的缩写&#xff09;是一种机器语言指令及其汇编语言助记符、编程语言语句或不执行任何操作的计算机协议命令。 免费的C语言和l…

C# NOPI导出Excel 设置计算公式,多行表头

说明 现需要导出Excel&#xff0c;统计每个人的工作量&#xff0c;计算方式为&#xff1a;项目分值*项目数量 效果 c#代码 //创建工作簿 MemoryStream MStream new MemoryStream();XSSFWorkbook WBook new XSSFWorkbook(); //创建sheet ISheet sheet WBook.CreateSheet(D…

vb.net读取写入EXCEl的终极方法-NOPI。

据我浅薄的知识&#xff0c;之前只知道两种操作excel的方法&#xff1a; 一。ODBC操作excel 看下图&#xff1a; 1.ODBC 由于初期连接不同的数据库通过各种不同的API&#xff0c;ODBC就是将各种不同的API封装成统一的接口。当sql语句进入接口时驱动器管理器会判断将他们送入对…

unity NOPI 创建word文档

unity NOPI 创建word文档 导入NOPI 所需要的DLL ICSharpCode.SharpZipLib.dll&#xff0c;NPOI.dll&#xff0c;NPOI.OOXML.dll&#xff0c;NPOI.OpenXml4Net.dll&#xff0c;NPOI.OpenXmlFormats.dll 打包还需导入I18N.CJK.dll,I18N.dll,I18N.West.dll 如果导入Dll出错,设…

pnpm — Monorepo

1、安装 pnpm npm i pnpm -g 2、创建Monorepo管理文件夹&#xff0c;这里命名 Monorepo&#xff0c;并创建packages文件夹 3、创建用于定义工作空间的根目录的yaml文件&#xff1a; pnpm-workspace.yaml&#xff0c;并添加 packages:- packages/ ** 4、 pnpm init 5、pn…

NOPI用法之自定义单元格背景色(3)

NPOI针对office2003使用HSSFWorkbook&#xff0c;对于offce2007及以上使用XSSFWorkbook&#xff1b;今天我以HSSFWorkbook自定义颜色为例说明&#xff0c;Office2007的未研究呢 在NPOI中默认的颜色类是HSSFColor&#xff0c;它内置的颜色有几十种供我们选择&#xff0c;如果不…

c# 使用NOPI 操作Excel

最近项目需要导出Excel,找来找去,微软有自己的Excel组件 using Microsoft.Office.Core;using Microsoft.Office.Interop.Excel;,但是有一个毛病,就是程序所在电脑安装Office,这个问题简直是致命的,因为导出服务我们要做在服务端,程序直接生成Excel,然后客户端路径去下载,…

C# NOPI 项目实战(经典)(可下载项目源码)

1 -.首先说明下项目目的: 之前我有写过一篇 "NPOI操作EXCEL" 这篇文章主要介绍了如何安装NPOI&#xff0c;以及NPOI具体如何c#教程使用&#xff0c;并且用具体实例介绍了excel导入到datagridview以及 datagridview如何导出到excel并保存。如果不清楚这块的去我公众…

NOPI将数据导出至EXCEL表格

文章目录 前言一、NPOI优势二、运行逻辑三、安装NOPI组件四、导出Excel---实现代码五、最终效果六、总结 前言 NPOI,就是POI的.NET版本。POI是一套用Java写成的库&#xff0c;能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件&#xff0c;支持的文件格式包…

RabbitMQ原理、集群、基本操作及常见故障处理

本次学习主要针对运维人员&#xff0c;和对rabbitmq不熟悉的开发人员。通过本次学习你将掌握rabbitmq 的基本原理、集群、基本运维操作、常见故障处理。 1、原理与概念 简介 AMQP&#xff0c;即Advanced Message Queuing Protocol&#xff0c;高级消息队列协议&#xff0c;是…

RabbitMQ简易原理及使用

黑马程序员RabbitMQ全套教程&#xff0c;rabbitmq消息中间件到实战_哔哩哔哩_bilibili 尚硅谷RabbitMQ教程丨快速掌握MQ消息中间件_哔哩哔哩_bilibili 安装&#xff1a;CentOS8安装RabbitMQ 3.8.9_wcybaonier的博客-CSDN博客 // config改为conf&#xff0c;rabbitmq以后缀识别&…

RabbitMQ-详细讲解原理到使用

这里写目录标题 1.初识MQ1.1.同步和异步通讯1.1.1.同步通讯1.1.2.异步通讯1.2.技术对比&#xff1a; 2.快速入门2.1.安装RabbitMQ1.单机部署1.1.下载镜像1.2.安装MQ 2.2.RabbitMQ消息模型2.3.创建一个Demo工程2.4.入门案例2.4.1.publisher实现2.4.2.consumer实现2.5.总结 3.Spr…

rabbitmq基本原理

AMQP(高级消息队列协议) 是一个异步消息传递所使用的应用层协议规范&#xff0c;作为线路层协议&#xff0c;而不是API&#xff08;例如JMS&#xff09;&#xff0c;AMQP 客户端能够无视消息的来源任意发送和接受信息。 AMQP当中有四个概念非常重要 1. virtual host&#xff…

RabbitMQ 内部结构原理介绍

RabbitMQ简介 RabbitMQ是一个用Erlang语言开发的、实现了AMQP协议的消息中间件。 AMQP :&#xff08;Advanced Message Queue&#xff0c;高级消息队列协议&#xff09;它是应用层协议的一个开放标准&#xff0c;为面向消息的中间件设计&#xff0c;基于此协议的客户端与消息中…

Rabbitmq机制

1.发布与订阅 publish and subscribe 短信发送&#xff0c;消息订阅的功能一般会用到这个模式。 这个模式是通过路由器绑定消息队列来实现的&#xff0c;只要有队列绑定到这个路由器&#xff0c;就会接受改路由器的通知。 2.routing模式 路由模式 在发布订阅模式的基础增加了…

RabbitMQ 架构原理

1.RabbitMQ 架构原理 由于 RabbitMQ 实现了 AMQP 协议&#xff0c;所以 RabbitMQ 的工作模型也是基于 AMQP 的。理解这张图片至关重要。 1.1 Broker 中介 我们要使用 RabbitMQ 来收发消息&#xff0c;必须要安装一个 RabbitMQ 的服务&#xff0c;可以安 装在 Windows 上面也可以…

RabbitMq底层原理分析

RabbitMq消息中间件介绍&为什么要使用消息中间件&什么时候使用消息中间件 我们用java来举例子&#xff0c; 打个比方 我们客户端发送一个下单请求给订单系统&#xff08;order&#xff09;订单系统发送了 一个请求给我们的库存系统告诉他需要更改库存了&#xff0c; 我…

RabbitMQ集群原理介绍

文章目录 一、RabbitMQ默认集群原理1. RabbitMQ集群元数据的同步2. 为何RabbitMQ集群仅采用元数据同步的方式3. RabbitMQ集群发送/订阅消息的基本原理4. 客户端直接连接队列所在节点5. 客户端连接的是非队列数据所在节点7. 集群节点类型磁盘节点内存节点 8. 总结 二、RabbitMQ镜…

RabbitMQ的基本架构与实现原理

目录 1.RabbitMQ Exchange类型 2.RabbitMQ的数据存储 RabbitMQ整体逻辑架构 1.RabbitMQ Exchange类型 常用的交换器类型分为&#xff1a;Direct、Topic、 Fanout、Header 四种。 Fanout fanout类型的交换器会把所有发送到该交换器的消息路由到所有与该交换器绑定的队列中&…

Rabbit Mq 底层原理

为什么要用MQ&#xff1f;MQ有什么好处&#xff1f; 1、异步通信&#xff1a;通过异步通信&#xff0c;可以减少客户端等待时间&#xff0c;实现接口快速响应 2、系统解耦&#xff1a;对于复杂的系统&#xff0c;减小系统与系统之间的依赖 3、流量削峰&#xff1a;对于瞬时访问…