C#使用NPOI进行Excel和Word文件处理(二)

文章目录

      • 使用NPOI在C#中处理Excel和Word文件
        • 1. 什么是NPOI?
        • 2. 安装NPOI
          • 2.1 VisualStudio2019引入NPOI
        • 3. 处理Excel文件
          • 读取Excel文件
          • 写入Excel文件
        • 4. 处理Word文件
          • 读取Word文件
          • 写入Word文件
      • 总结
      • Github 地址链接
      • 参考例子

使用NPOI在C#中处理Excel和Word文件

在C#开发中,处理Microsoft Office文件(如Excel和Word)是一个常见的需求。NPOI是一个强大的开源库,它基于Apache POI项目,为.NET平台提供了读取和写入这些文件的能力。本文将介绍如何使用NPOI在C#中处理Excel和Word文件,并提供一些示例代码。

1. 什么是NPOI?

NPOI是一个.NET库,用于读取和写入Microsoft Office格式文件,包括Excel (.xls, .xlsx)和Word (.doc, .docx)。NPOI使开发者可以在不依赖于Office组件的情况下操作Office文件,非常适合在服务器端应用中使用。

2. 安装NPOI

在开始之前,你需要在你的项目中安装NPOI。可以通过NuGet包管理器来安装。打开Visual Studio的“包管理器控制台”,然后运行以下命令:

Install-Package NPOI
2.1 VisualStudio2019引入NPOI

在这里插入图片描述

3. 处理Excel文件
读取Excel文件

以下示例展示了如何读取Excel文件并输出其内容:

using System;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;class Program
{static void Main(string[] args){string filePath = "example.xlsx";using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read)){IWorkbook workbook = new XSSFWorkbook(file);ISheet sheet = workbook.GetSheetAt(0); // 获取第一个工作表for (int row = 0; row <= sheet.LastRowNum; row++){IRow currentRow = sheet.GetRow(row);for (int col = 0; col < currentRow.LastCellNum; col++){ICell cell = currentRow.GetCell(col);Console.Write(cell.ToString() + "\t");}Console.WriteLine();}}}
}
写入Excel文件

以下示例展示了如何创建并写入一个新的Excel文件:

using System;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;class Program
{static void Main(string[] args){IWorkbook workbook = new XSSFWorkbook();ISheet sheet = workbook.CreateSheet("Sheet1");IRow row = sheet.CreateRow(0);row.CreateCell(0).SetCellValue("Name");row.CreateCell(1).SetCellValue("Age");row = sheet.CreateRow(1);row.CreateCell(0).SetCellValue("John Doe");row.CreateCell(1).SetCellValue(30);using (FileStream file = new FileStream("output.xlsx", FileMode.Create, FileAccess.Write)){workbook.Write(file);}}
}
4. 处理Word文件
读取Word文件

以下示例展示了如何读取Word文件并输出其内容:

using System;
using System.IO;
using NPOI.XWPF.UserModel;class Program
{static void Main(string[] args){string filePath = "example.docx";using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read)){XWPFDocument doc = new XWPFDocument(file);foreach (var para in doc.Paragraphs){Console.WriteLine(para.Text);}}}
}
写入Word文件

以下示例展示了如何创建并写入一个新的Word文件:

using System;
using System.IO;
using NPOI.XWPF.UserModel;class Program
{static void Main(string[] args){XWPFDocument doc = new XWPFDocument();XWPFParagraph para = doc.CreateParagraph();XWPFRun run = para.CreateRun();run.SetText("Hello, World!");using (FileStream file = new FileStream("output.docx", FileMode.Create, FileAccess.Write)){doc.Write(file);}}
}

总结

通过NPOI,你可以轻松地在C#中处理Excel和Word文件,无需依赖Office组件。本文提供的示例代码展示了如何读取和写入这些文件的基本操作。你可以根据自己的需求扩展这些示例,以实现更多功能。

希望这篇文章能帮助你更好地理解如何在C#中使用NPOI进行Excel和Word文件的处理。如果你有任何问题或建议,欢迎在评论区留言讨论。

Github 地址链接

https://github.com/nissl-lab/npoi-examples.git
https://github.com/nissl-lab/npoi.git

参考例子

 try{string fileName = Application.StartupPath + @"\aramexConfig\docx\templateWord.docx";//模板Dictionary<string, object> aramexShippmentMap = (Dictionary<string, object>)obj;AramexShippment aramexShippment = (AramexShippment)aramexShippmentMap["aramexShippment"];string wordPath = aramexShippmentMap["wordPath"].ToString();string wordToPngName = aramexShippmentMap["wordToPngName"].ToString();if (File.Exists(wordPath + wordToPngName + ".JPG")){//文件存在就删除File.Delete(wordPath + wordToPngName + ".JPG");}//string saveFile = @"D:\testPng\案例1.docx";XWPFDocument document = null;using (FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite)){document = new XWPFDocument(file);//将模板加载进新的word中}#region 表格document.Tables[0].Rows[0].GetCell(1).SetText("test1");document.Tables[0].Rows[1].GetCell(1).SetText("test2");document.Tables[0].Rows[2].GetCell(1).SetText("test3");document.Tables[0].Rows[3].GetCell(1).SetText(DateTime.Now.ToString("yyyy-MM-dd"));document.Tables[0].Rows[4].GetCell(1).SetText("test4");document.Tables[0].Rows[0].GetCell(4).SetText("test5");#endregion 
//保留到本地//FileStream fs = new FileStream(wordPath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);//document.Write(fs);//fs.Close();//document.Close();
//保留到缓存流中MemoryStream stream = new MemoryStream();document.Write(stream);stream.Close();document.Close();}catch (Exception ex){string error = ex.Message.ToString();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/393460.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux maven仓库 删除未下载完成的包 lastUpdated文件

以下命令查找.lastUpdated文件所在目录&#xff0c;并删除所在目录(maven包的版本目录&#xff09;。 $ find ~/.m2/repository/ -regex ".*\.lastUpdated" | xargs dirname | xargs rm -rf查找未下载完成的文件 $ find ~/.m2/repository/ -regex ".*\.lastUp…

使用 docker 快速搭建独角数卡发卡网

docker版本的发卡程序搭建 项目1&#xff1a;https://github.com/assimon/dujiaoka 项目2&#xff08;基于项目1&#xff09;&#xff1a;https://github.com/Apocalypsor/dujiaoka-docker 一键安装脚本 curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/m…

系统化学习 H264视频编码(06)哥伦布编码解读

说明&#xff1a;我们参考黄金圈学习法&#xff08;什么是黄金圈法则?->模型 黄金圈法则&#xff0c;本文使用&#xff1a;why-what&#xff09;来学习音H264视频编码。本系列文章侧重于理解视频编码的知识体系和实践方法&#xff0c;理论方面会更多地讲清楚 音视频中概念的…

C语言典型例题28

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题2.5 输入一个华氏温度&#xff0c;要求输出摄氏温度。公式为C5/9(F-32)&#xff0c;要求输出要有文字说明&#xff0c;取两位小数 数学知识&#xff1a; &#xff08;1&#xff09;华氏温度与摄氏温度&#x…

E2000 RGMII0通讯异常问题总结

最近让新来小朋友做了一款E2000Q的板卡,使用了E2000Q上的两个RGMII资源,外接YT8521转出了电口。 但是他调试中遇到了一个比较奇怪的问题,两套YT8521的电路都一样,但是一路通一路不通。 也就是框图中MAC2(芯片RGMII0,系统对应eth1)那路网络不通,图中MAC3(芯片RGMII1,…

DITA发布PDF样式定制

- 1 - 概述 使用结构化写作/DITA写作&#xff0c;内容和样式是分离的。 编写的内容放在DITA文件中&#xff0c;样式是放在样式模板文件中。 而且针对不同的格式的输出&#xff08;如&#xff1a;PDF&#xff0c;MS Word&#xff09;&#xff0c;样式模板文件不同。 文档工程…

【优秀python案例】基于百度贴吧的数据采集与文本分析设计与实现

数据采集实现&#xff1a; 对百度贴吧帖子数据的采集。首先&#xff0c;使用requests库发送HTTP请求&#xff0c;通过设置请求头模拟浏览器访问&#xff0c;获取网页的HTML内容。然后&#xff0c;利用BeautifulSoup库对HTML内容进行解析&#xff0c;以便提取所需的信息。 在循…

c# .net core项目角色授权机制

前言 角色授权机制是确保应用程序安全性的重要组成部分&#xff0c;它允许开发者根据用户的角色来限制对应用程序中不同资源的访问。 基本概念&#xff1a; 角色授权基于用户角色的访问控制&#xff0c;即根据用户所属的角色来决定其能够访问的资源或执行的操作。在.NET Cor…

k8s—ingress应用

一、ingress和ingress-controller ingress对象&#xff1a; 指的是k8s中的⼀个api对象/资源对象&#xff0c;⼀般⽤yaml配置。作⽤是定义请求如何转发到service的规则&#xff0c;可以理解为配置模板。 ingress-controller&#xff1a; 具体实现反向代理及负载均衡的程序&…

鸿蒙第三方应用.hap打包、安装流程。

最近在华为手表上安装第三方应用&#xff08;源码打包构建应用&#xff0c;需要签名&#xff09;。网上看了教程&#xff0c;在此记录下。 准备工作&#xff1a;先安装DevEco Studio开发工具。 进入华为 appgallery connect网站&#xff08;注册、开发者实名认证&#xff09; …

【Material-UI】按钮组:按钮变体详解

文章目录 一、按钮变体概述1. 组件介绍2. 基本用法 二、按钮变体详细说明1. 轮廓按钮&#xff08;Outlined&#xff09;2. 文本按钮&#xff08;Text&#xff09;3. 填充按钮&#xff08;Contained&#xff09; 三、按钮变体的实际应用场景1. 界面设计2. 界面一致性3. 视觉层次…

面试笔记 8.5

面试常见: Jvm&#xff0c;高并发&#xff0c;多线程&#xff0c;数据库&#xff0c;redis&#xff0c;框架 1.N I/O有什么核心组件 Java NIO 基本原理以及三大核心组件_java nio核心组件有哪些-CSDN博客 Buffer 缓冲 Channel 一对一 Channel 读取数据 Selector对应线程…

双轮驱动产品持续商业成功

获取完整PPT见下图 更多有关华为研发管理/IPD、MBSE、PLM、ERP、MES、数据治理、数字样机等方面免费解决方案、资料获取&#xff0c;请见下图

前端(五):前端工程化

前端工程化是指在企业级的前端开发项目中&#xff0c;把前端开发所需的工具、技术、流程、经验等进行规范化、标准化。 一、环境准备 &#xff08;一&#xff09;环境准备 1、Vue-cli&#xff1a;是Vue官方提供的一个脚手架&#xff0c;用于快速生成一个Vue的项目模板。 2、…

myeclipse 2020 下载 安装 汉化

1&#xff0c;解压 myeclipse 2020 压缩包到当前目录下&#xff1a; 点击此处蓝色字体下载压缩包 提取码 k3x9 2&#xff0c;鼠标右键 点击 myeclipse 2020.exe 选择 以管理员身份运行 &#xff1a; 3&#xff0c;等待加载&#xff1a; 4&#xff0c;点击 Next &#xff1a; 5…

正则表达式测试工具

前言 正则表达式测试工具可供您输入正则表达式和测试文本&#xff0c;立即查看匹配结果. 下面是离线的HTML文件,同样可以提供相同的服务. 目录 使用说明 HTML代码 正则表达式的编写经验和方法 总结 使用说明 1.先将HTML代码存储成.html为后缀的文件; 2.然后用浏览器打开这个…

C++空指针(nullptr)

C空指针(nullptr) ​ 在C语言中我们把空指针定义成NULL&#xff0c;但是这在C中会有所问题&#xff0c;因为C对指针类型转换比较严格。下面让我来深入了解一下NULL与nullptr。 NULL实际就是一个宏&#xff0c;在C头文件(stddef.h)中&#xff0c;可以看到如下代码&#xff1a;…

【ML】transform 之 decoder 及其实现细节

【ML】transform 之 decoder 及其实现细节 1. decoder2. encoder 和decoder 之间是如何处理和传递讯息的&#xff1f;self-attention3. 查询&#xff08;Query&#xff09;、键&#xff08;Key&#xff09;、值&#xff08;Value&#xff09;是三个核心概念及其具体含义和计算方…

二十八、【人工智能】【机器学习】- 隐马尔可夫模型 (Hidden Markov Models, HMMs)

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…

模型 MBTI(性格模型)

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。探索真我&#xff0c;和谐人际。 1 MBTI性格模型的应用 1.1 跨国公司团队协作改进 ABC公司是一家全球性的科技公司&#xff0c;其研发团队由来自世界各地的工程师和设计师组成。尽管团队成员个个才华…