csharpC#.NET

NPOI的基本使用

2019-04-17  本文已影响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使用手册

上一篇下一篇

猜你喜欢

热点阅读