美文网首页csharpC#.NET
NPOI的基本使用

NPOI的基本使用

作者: 张中华 | 来源:发表于2019-04-17 23:51 被阅读6次

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

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

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


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


    通过这几个dll,可以看出,NPOI的用途还是挺多的。
    那么, 接下来创建一个demo,实现一下简单的对excel的增、删、改、查功能。在此之前,在项目文件下创建一个NPOIDemo.xlsx

    第三步,简单使用增,删,改,查:

    初始文件:



    代码执行过程中数据记录:



    执行结果:

    Code:

    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) // 2007
                        workbook = new XSSFWorkbook(fs);
                    else if (path.IndexOf(".xls") > 0) // 2003
                        workbook = 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实例写入文件
                    // 增加sheet
                    workbook.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的基本使用

        本文链接:https://www.haomeiwen.com/subject/lwhmwqtx.html