C#利用NPOI 简单的导入导出excel及获取外部引入excel时的方法

C#使用NPOI库实现Excel导入导出操作——提升数据处理效率的利器 NPOI是一个开源的.NET库,用于处理Microsoft Office文档,包括Word、Excel等。它支持Excel的读取、写入、格式化等操作,同具有良好的扩展性和易用性。NPOI库由两部分组成:NPOI和NPSpreadsheet。NPOI提供了对Microsoft Office文档格式的低层次访问,而NPSpreadsheet提供了更高层次的API,用于处理Excel文件。NPOI库是一个功能强大的.NET库,用于处理Excel文件,包括导入和导出操作。 阅读详情

C#利用NPOI 简单的导入导出excel及获取外部引入excel时的方法

引入NPOI

想要使用npoi,必须要对其进行引入:

  1. 方法一 ,使用vstudio自带的引入方式,
    点击项目–>管理NuGet程序包–>搜索对应的NPOI版本进行下载,引入;
  2. 方法二,使用代码,进入npoi官网、
    https://www.nuget.org/packages/NPOI
    在这里插入图片描述
    点击红圈的地方进行复制,
    打开VStudio–>工具–>NuGet管理程序包–>程序包管理控制台–>将刚复制的内容粘贴到PM>下
    PM> Install-Package NPOI -Version 2.5.6 执行后便会引入NPOI
    如果无法加载,点击工程项目 右键进入将其引入
    在这里插入图片描述

导入

1、创建workbook

IWorkbook wb = new HSSFWorkbook();

2、创建sheet(至少存在一个sheet)

 ISheet sheet1 = wb.CreateSheet("Sheet1");

3、创建行及单元格

  IRow row = sheet1.CreateRow(0);
  ICell cell1 = row.CreateCell(0);

4、可以进行一些单元格样式或字体的设置

 ICellStyle style = wb.CreateCellStyle();
 style.SetFont(font);
 //font.FontName = "华文行楷";
 font.FontName = "宋体";
 font.Color = HSSFColor.Blue.Index;
 font.FontHeightInPoints = 22;
 style.Alignment = HorizontalAlignment.Center;//居中

5、完整代码
(此处为简易的循环输入数字,可以根据自己的业务进行输入)

public static void WriteSheet() {
            IWorkbook wb = new HSSFWorkbook();
            IFont font = wb.CreateFont();
            ICellStyle style = wb.CreateCellStyle();
            style.SetFont(font);
            //font.FontName = "华文行楷";
            font.FontName = "宋体";
            font.Color = HSSFColor.Blue.Index;
            font.FontHeightInPoints = 22;
            style.Alignment = HorizontalAlignment.Center;//居中
         
            ISheet sheet1 = wb.CreateSheet("Sheet1");
            IRow row = sheet1.CreateRow(0);
            ICell cell1 = row.CreateCell(0);
            cell1.SetCellValue("姓名");
            row.CreateCell(1).SetCellValue("B");
            row.CreateCell(2).SetCellValue("C");
            cell1.CellStyle = style;

            // sheet1.SetColumnWidth(0,100*256);//列宽(索引,宽度(单位为1/256个字符宽度))
            // row.Height = 200 * 20;
            //sheet1.DefaultColumnWidth =100 * 256;
            // sheet1.DefaultRowHeightInPoints = 30 * 20;
            int x = 1;
            for (int i = 1; i <= 3; i++)
            {
                 row = sheet1.CreateRow(i);
                
                for (int j = 0; j < 3; j++)
                {
                    cell1 = row.CreateCell(j);
                    cell1.SetCellValue(x++);
                }
            }
            FileStream sw = File.Create("../../../test.xlsx");
            wb.Write(sw);
            sw.Close();
        }

导出

1、写出完整路径

 string path = "../../../aaa.xlsx";

2、创建workbook

FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
var workBook = WorkbookFactory.Create(fs);

注意:文件类型的判断
如果为“.xlsx”便创建HSSFWorkBook
如果为“.xls”便创建XSSFWorkBook
3、创建sheet

 ISheet sheet = workBook.GetSheetAt(0);

4、创建单元格并获取其中的值

Formula类型

注意,其中的值类型要进行区分判断
尤其Formula类型的vlookup函数
(种类一:引用本工作簿的不同sheet内容)
(种类二:引用外部工作簿的sheet内容)
(种类三:引用不存在的工作簿的sheet内容)
(种类四:引用错误函数的内容)
可以通过以下方法显示

IFormulaEvaluator evaMain = new XSSFFormulaEvaluator(workBook);
evaMain.IgnoreMissingWorkbooks=true;
cell = evaMain.EvaluateInCell(cell);
if (cell.CellType == CellType.Numeric)
{
 cellName = cell.NumericCellValue.ToString();
}
if (cell.CellType == CellType.String)
{
cellName = cell.StringCellValue.ToString();
}

5、完整代码

public static void ReadExcel() {
            string path = "../../../aaa.xlsx";
            FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
            var workBook = WorkbookFactory.Create(fs);
            ISheet sheet = workBook.GetSheetAt(0);
            string cellName ;
            foreach (IRow row in sheet)
            {
                for (var i = 0; i < row.LastCellNum; i++)
                {
                    var cell = row.GetCell(i);
                    if (cell != null)
                    {
                        switch (cell.CellType)
                        {
                            case CellType.String:
                                cellName = cell.StringCellValue;
                                break;
                            case CellType.Numeric:
                                cellName = cell.NumericCellValue.ToString();
                                break;
                            case CellType.Formula:
                                if (workBook != null) {
                                    IFormulaEvaluator evaMain = new XSSFFormulaEvaluator(workBook);
                                    evaMain.IgnoreMissingWorkbooks=true;
                                      cell = evaMain.EvaluateInCell(cell);
                                    if (cell.CellType == CellType.Numeric)
                                    {
                                        cellName = cell.NumericCellValue.ToString();
                                    }
                                    if (cell.CellType == CellType.String)
                                    {
                                        cellName = cell.StringCellValue.ToString();
                                        // cellName = cell.RichStringCellValue.ToString();
                                    }
                                }
                                break;
                            case CellType.Boolean:
                                cellName = cell.BooleanCellValue.ToString();
                                break;
                            case CellType.Error:
                                cellName = cell.ErrorCellValue.ToString();
                                break;
                            case CellType.Blank:
                                cellName = string.Empty;
                                break;
                            default:
                                cellName = cell.ToString();
                                break;
                        }
                        Console.WriteLine(cell.ToString());

                        Console.Write("\n");
                    }
                }
                Console.WriteLine();     
            }
        }
C#使用NPOI导入导出EXCEL文件 NPOI可以通过右键解决方案->管理解决方案的NuGet程序包->下载NPOI控件,也可以在网上下载好NPOI DLL包然后倒入项目。 1.新建Windows窗体应用程序员项目,重命名为TestNOPIOperateExcel 2.在Form1界面中控件。添加button1、button2控件用于倒入、导出excel,label1、label2用来显示倒入、导出所需间,dataGridView1用来查看Excel文件。 3.右键Form1.cs->查看代码,切换到代码界面。 4.右 阅读详情

相关推荐

C#使用NPOI读写Excel文件

C#使用NPOI读写Excel文件 NPOI是开源的POI项目的.NET版,可以使用读写Excel,Word,PPT等Office文件。在实际项目中,使用它来读写Excel文件的用途最为广泛,这里简单介绍一下NPOI读写Excel文件的方式。 主要对象和方法 IWorkbook: 该接口用于操作excel工作簿的一个接口,主要有两个实现 HSSFWorkbook : 用于读取excel2007版本以下的xls文件 XSSFWorkbook : 用于读取.xlsx 文件

qq_36638575的博客 3410

C#使用NPOI实现导入导出Excel数据

一、NPOI简介 1.1、NPOI是什么   NPOI是POI的.NET版本,POI是一套用Java写成的库,我们在开发中经常用到导入导出表格、文档的情况,NPOI能够帮助我们在没有安装微软Office的情况下读写Office文件,如xls, doc, ppt等。NPOI采用的是Apache 2.0许可证(poi也是采用这个许可证),这意味着它可以被用于任何商业或非商业项目,我们不用担心因为使用它而必须开放你自己的源代码,所以它对于很多从事业务系统开发的公司来说绝对是很不错的选择。 1.2、NPOI

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1万+

C#利用NPOIExcel进行基本操作

C#利用NPOI操作Excel详解 一、 下载npoi控件,并进行引用。 1.下载地址: 2.引用npoi (1)、下载后的npoi包括5个dll文件: (2)、下载完成之后首先创建一个控制台程序,然后在视图里面,调出解决方案资源管理器,点击“引用”&gt;&gt;“添加引用”&gt;&gt;“浏览”&gt;&gt;找到自己所下载的NPOI文件夹,添加上文中的5个动态库。 二、 创建新的Exc...

zjw1604080128的博客 1万+

NPOIC#中的使用总结

0.NPOI简单介绍 百度百科说NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作,NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。 优势:可以在没有安装Office的电脑上对Word和Excel进行操作,开源免费。 1.NPOIC#中的安装与调用 2.NPOI查找行数和列数 3.NPOI创建单元格 4.NPOI合并单元格 5.NPOI执行公式 6.NPOI设置单元格格式和列宽 7.NPOI使用过程中遇到的一些问题与解决办法

linnge的博客 1万+

NPOI使用手册

一个.NET库,用于读取和写入Microsoft Office二进制和OOXML文件格式。 1.认识NPOI 1.1 什么是NPOI NPOI,顾名思义,就是POI的.NET版本。 那POI又是什么呢? POI是一套用Java写成的库,能够帮助开发者在没有安装微软Office的情况下读写Office 97-2003的文件, 支持的文件格式包括xls, doc, ppt等。在本文发布,POI的最新版本是3.5 beta 6。 NPOI 1.x是基于POI 3.x版本开发的,与poi 3.2对应的版本是N

极客神殿 2万+

C#NPOI实现数据保存到excel

很多场景,C#程序需要将处理后的数据导出到excel格式生成表格进行保存,相信对于很多初入门的小伙伴来说相信是比较头疼和复杂的过程,下面小博为大家分享一下如何利用NPOI来将数据写入到excel中并保存 1.下载NPOI库文件 首先是下载NPOI要用到的ICSharpCode.SharpZipLib.dll,NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net...

Huang_lidong的博客 7522

C#中使用NPOI库进行Excel数据导入导出实战

NPOI库是.NET环境下操作Excel文档的一个开源库,它为开发者提供了一种简单的方式来读取和写入Microsoft Office格式的文件,尤其在处理Excel文档(.xlsx和.xls)显得非常方便。NPOI在.NET世界中提供了一个类似于Java中的Apache POI库的功能,允许开发者在无需安装Microsoft Office的情况下,就能对Excel文件进行各种操作。

weixin_42518334的博客 2015

C# NPOI 创建Excel

NPOI是一个供给C#操作导入或导出Excel的开源工具.NET版本:.NET 5NPOI版本:2.6.0。

灰羊驼丶的博客 3066

C#开发者必备:NPOI-Excel数据导入导出教程及实例

NPOI是一个基于.NET的库,用于处理Microsoft Office格式文件。它支持读写Microsoft Word(.doc/.docx)、Excel(.xls/.xlsx/.xlsm)和PowerPoint(.ppt/.pptx)等文件格式。NPOI提供了一种与文件格式无关的方式来处理Office文件,使得开发者可以在不安装Microsoft Office的情况下,轻松创建和管理文档内容。MVC设计模式是一种广泛用于开发用户界面的应用程序架构模式,它促进了程序的分层开发,每个层负责特定的任务。

weixin_34885746的博客 1525

c# 使用NPOI按模板导出excel

excel模板设置 私车公用单 申请信息 申请单号: $header.ORDER_NO 申请日期: $header.CREATE_TIME $auotheight 申请部门: $header.APPLY_DEPT 申请人: $header.APPLY_USER $auotheight 项目: ...

LU142857的专栏 3285

C#使用NPOI将List数据导出到Excel文档

NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。使用 NPOI 可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。这里

dnazhd的博客 3065

C#封装NPOI实现Excel导入导出功能

NPOI是一个开源的.NET库,它支持在不依赖Microsoft Office的情况下读写Excel文件,包括较低版本的.xls和较新版本的.xlsx格式。NPOI库使用简单,功能强大,非常适合需要处理Excel文件的.NET开发者。策略模式的核心是策略接口,它定义了一个算法家族,并让它们之间可以互相替换。在导入导出场景中,我们可以定义一个简单的接口来规范导入导出的行为:配置列(ExcelConfigColumn)是实现灵活的Excel文件导入导出功能的关键组件。

weixin_33610780的博客 1049

C#使用NPOI库实现Excel文件导入导出的全面教程

NPOI库是一个在.NET平台上操作Microsoft Office文档的开源库,它提供了一种方式来创建、修改和显示Office文档,而无需安装Microsoft Office。它的主要特性包括:支持多种Office格式:NPOI不仅可以处理旧版本的Excel格式(.xls),还支持最新的Excel格式(.xlsx)。不依赖Office:使用NPOI可以避免因为安装了不同版本的Microsoft Office而出现格式不兼容问题。

weixin_35516273的博客 1283

winform 利用 NPOI导入,导出excel

一,引用npoi 按 工具->NuGet 包管理器->程序包管理控制台 顺序依次点击,在 VS2015 界面的弹出的 程序包管理控制台输入 Install-Package NPOI -Version 2.4.1 二、编写npoi工具类 using System; using System.Collections.Generic; using System.Text; using...

大洋哥的博客 3906

C# NPOI操作Excel汇总

C#操作Excel有多种方法,如通过数据库的方式来读写Excel的OleDb方式,但是OleDb方式需要安装微软office,还可以通过COM组件方式操作Excel,也需要安装微软Excel。如果不想安装微软办公套餐可以使用ClosedXML、EPPlus、NPOI。本文主要是介绍NPOI的常用使用方法。Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

小龙在线 7155

C#NPOI保存为Excel文件

首先下载NPOI组件,下载地址: 1,官网:http://npoi.codeplex.com/ 2,本地下载:NPOI 2.0 dotnet binary 下载后添加引用(这里有.net2.0版和4.0版的,按需引用) 使用方法如下: /// /// 保存成excel(NPOI方式) /// pr

Dice的学习笔记 7710

C#利用NPOI将DataTable数据写入Excel

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、引入NPOI程序包二、使用步骤1.引入命名空间2.创建类3.验证结果 前言 本文主要介绍了一种C#Excel写入的操作方法,通过引入NPOI程序包实现: 1、判断xls/xlsx文件是否已存在 2、若文件已存在则在原文件追加数据 3、若文件不存在则新建文件并写入数据 一、引入NPOI程序包 VS>>工具>>NuGet包管理器>>管理解决方案的NuGet程序包>>在浏览位置.

m0_66521262的博客 2944

C#读写导入导出Excel表格模板(NPOI

NPOI介绍: NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。 NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。 NPOI优势: 1、您可以完全免费使用该框架 2、包含了大部分EXCEL的特性(单元格样式、数据格式、公式等等) 3、专业的技术支持服务(24*7全天候) (非免费) 4、支持处理的文件格式包括xls, xlsx, docx. 5、采用面向接口的设计架构( 可以查看 NPO

My note 6395
上一篇: 面试(软件开发员-物联网专业)
pocketful~
博客等级 码龄6年 277粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值