C#使用NPOI库出现异常报错的解决方案

2021/8/6 17:08:27

本文主要是介绍C#使用NPOI库出现异常报错的解决方案,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在这里插入图片描述

这里写目录标题

  • 一级目录
    • 问题截图
    • 原因分析
    • 解决方法
    • 解决步骤截图
      • 从工具入手
      • 输入NPOI,安装
      • 完成,具体程序

一级目录

问题截图

在这里插入图片描述

原因分析

因为自己所用到的NPOI库是网上找到的,版本和自己的VS环境之间不一定适配,因此出现了这种错误。

解决方法

直接去VS工具入口下载与VS版本适配的NPOI库即可

解决步骤截图

从工具入手

在这里插入图片描述

输入NPOI,安装

在这里插入图片描述
在这里插入图片描述

完成,具体程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;
using NPOI.POIFS.FileSystem;
        static void Main(string[] args)
        {

            HSSFWorkbook workbook2003 = new HSSFWorkbook(); //新建工作簿

            workbook2003.CreateSheet("Sheet1");  //新建1个Sheet工作表            
            HSSFSheet SheetOne = (HSSFSheet)workbook2003.GetSheet("Sheet1"); //获取名称为Sheet1的工作表

            
            //对工作表先添加行,下标从0开始
            for (int i = 0; i < 2; i++)
            {
                SheetOne.CreateRow(i);   //创建10行
            }
            //对每一行创建10个单元格
            HSSFRow SheetRow = (HSSFRow)SheetOne.GetRow(0);  //获取Sheet1工作表的首行
            HSSFRow SheetRow1 = (HSSFRow)SheetOne.GetRow(1);  //获取Sheet1工作表的1行
            HSSFCell[] SheetCell = new HSSFCell[10];
            HSSFCell[] SheetCell1 = new HSSFCell[10];
            for (int i = 0; i < 10; i++)
            {
                SheetCell[i] = (HSSFCell)SheetRow.CreateCell(i);  //为第一行创建10个单元格
            }
            for (int i = 0; i < 10; i++)
            {
                SheetCell1[i] = (HSSFCell)SheetRow1.CreateCell(i);  //为第一行创建10个单元格
            }
            //创建之后就可以赋值了
            SheetCell[0].SetCellValue(true); //赋值为bool型         
            SheetCell[1].SetCellValue(0.000001); //赋值为浮点型
            SheetCell[2].SetCellValue("Excel2003"); //赋值为字符串
            SheetCell[3].SetCellValue("123456789987654321");//赋值为长字符串
            for (int i = 4; i < 10; i++)
            {
                SheetCell[i].SetCellValue(i);    //循环赋值为整形
            }
            for (int i = 0; i < 10; i++)
            {
                SheetCell1[i].SetCellValue(i);    //循环赋值为整形
            }
            FileStream file2003 = new FileStream(@"D:\Excel2003.xls", FileMode.Create);
            workbook2003.Write(file2003);
            file2003.Close();
            workbook2003.Close();
            FileStream fs = new FileStream(@"D:\Excel2003.xls", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);//读取流

            POIFSFileSystem ps = new POIFSFileSystem(fs);//需using NPOI.POIFS.FileSystem;
            IWorkbook workbook = new HSSFWorkbook(ps);
            ISheet sheet = workbook.GetSheetAt(0);//获取工作表
            IRow row = sheet.GetRow(0); //得到表头
            FileStream fout = new FileStream(@"D:\Excel2003.xls", FileMode.Open, FileAccess.Write, FileShare.ReadWrite);//写入流
            row = sheet.CreateRow((sheet.LastRowNum + 1));//在工作表中添加一行

            ICell cell1 = row.CreateCell(0);
            cell1.SetCellValue("测试数据");//赋值

            fout.Flush();
            workbook.Write(fout);//写入文件
            workbook = null;
            fout.Close();

            System.Console.ReadKey();

        }


这篇关于C#使用NPOI库出现异常报错的解决方案的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程