C#使用NPOI将DataGridView内数据写入电子表格Excel

C#使用NPOI将DataGridView内数据写入电子表格Excel
NPOI能够在用户没有安装office的情况下读写office文件,包括.xls/.doc/.ppt等类型的文件。本文介绍的是使用NPOI库内的函数读写Excel(.xls)内的内容。在使用NPOI之前首先先要将NPOI添加到工程应用中,NPOI的官网链接:https://archive.codeplex.com/?p=npoi,本文最后也附带了代码和文件。

一、将DataGridView控件内的数据写入Excel文件,如果Excel文件不存在则新建表格,如果文件存在则新建并替换该表格。

写如Excel前需要知道的:

引入命名空间;
创建文件流;
创建workbook;
创建sheet;
创建行row;
创建单元格cell;
修改单元格的值;
1.引入命名空间:

本文操作所用到的NPOI中命名空间有:
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;

2.创建文件流:

使用FileStream创建文件流FileStream fs = new FileStream(文件路径, 文件操作方式, 文件读写权限);

FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);

3.创建workbook:

创建workbook只要创建一个HSSFWorkbook实例就可以了,HSSFWorkbook是NPOI.HSSF.UserModel中的类。NPOI.HSSF.UserModel.HSSFWorkbook这个类便是用来创建.xls文件的。

HSSFWorkbook workbook = new HSSFWorkbook();

4.创建sheet:

创建完workbook后,还需要为其添加工作表,即创建sheet。创建sheet同样是创建ISheet实例便可以了,ISheet是NPOI.SS.UserModel中用来创建工作表的类。

ISheet sheet = workbook.CreateSheet("Sheet1");

5.创建行row:

创建行的方法与上述类似,即创建IRow实例。

IRow row = sheet.CreateRow(i);//i为行序号

6.创建单元格cell:

同样的创建单元格就是创建ICell实例。

ICell cell = row.CreateCell(j);//j为列序号

7.修改单元格值:

修改单元格值通过调用cell的方法SetCellValue()即可;

放个例子:

复制代码

 1 //------------【函数:将表格控件保存至Excel文件(新建/替换)】------------    
 2 
 3         //filePath要保存的目标Excel文件路径名
 4         //datagGridView要保存至Excel的表格控件
 5         //------------------------------------------------------------------------
 6         public static bool SaveToExcelNew(string filePath,DataGridView dataGridView)
 7         {
   
 8             bool result = true;
 9 
10             FileStream fs = null;//创建一个新的文件流
11             HSSFWorkbook workbook = null;//创建一个新的Excel文件
12             ISheet sheet = null;//为Excel创建一张工作表
13 
14             //定义行数、列数、与当前Excel已有行数
15             int rowCount = dataGridView.RowCount;//记录表格中的行数
16             int colCount = dataGridView.ColumnCount;//记录表格中的列数
17 
18             //为了防止出错,这里应该判定一下文件与文件是否存在
19                         
20             //创建工作表
21             try
22             {
   
23                 fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
24                 workbook = new HSSFWorkbook();
25                 sheet = workbook.CreateSheet("Sheet1");
26                 IRow row = sheet.CreateRow(0)
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值