C#使用NPOI导出Excel文件

ce4218741a0f2439aa993fc711e21739.png

欢迎您成为我的读者,希望这篇文章能给你一些帮助。

前言

软谋的.NET全套架构视频,大多视频包含源码,录制时间(初中级是2019~2020高级架构是2020~2021),原价6499,现仅需299元。这个活动周三推出后,受到热捧,仅一个技术群就几十人抢购!最后几天活动,目录和介绍:点击下方超链接查看

太牛了!三天时间几百人加我咨询这份.NET架构视频

需要的加微zls20210502,进技术群的加微mm1552923,备注进群

今天咱们一起来看看在C#中如何使用NPOI第三方控件进行数据的导出。

关于NPOI插件网上资料很多,大家感兴趣的可以去看看。

本文使用的版本是NPOI 2.5.1。

大家可在包管理器NuGet或者下面网址进行下载。

http://npoi.codeplex.com/
快速下载地址:
//files.cnblogs.com/files/netxiaohui/npoi.2.5.1.zip

很多时候,我们在进行数据导出到Excel文件时,在windows平台需要使用到office组件才可以成功导出,也就是说电脑很多时候都必须安装office才可以。今天分享的这个组件,可以在目标主机不安装office的情况下,对Word或Excel进行读写操作。

NPOI的优势

  • 开源,可以完全免费使用

  • 包含大部分EXCEL的特性

  • 支持处理的文件格式包括(xls/xlsx/docx)

  • 同时支持导入导出

  • 基于.net 2.0/4.0也支持xlsx和docx格式

  • 不需要在服务器或目标主机安装office

  • 它不仅对Excel进行操作,可以对doc,ppt文件进行操作

NPOI内部构成

NPOI是一个开源的C#读取Excel、Word等微软OLE2组件文件的项目。

在使用NPOI的过程中,有一些名称需要提前了解下。

Workbook工作薄 一个文件包含一个工作簿,一个工作簿可以包含若干个工作表Sheet。

Sheet工作表

HSSFWorkbook用于处理xls文件类型的NPOI操作类,继承自IWorkbook。

XSSFWorkbook处理xlsx文件类型的NPOI操作类,也继承自IWorkbook。

操作xlsx文件进行数据导出工作时,主要有以下几个步骤需要注意。

1、声明XSSFWorkbook实例。

2、利用声明并实例化的工作簿创建其工作表。

3、写入Excel表头和表数据

4、将实例化的工作簿写入流文件中。

实际的导出工作就是上面说的四步,但是在内部需要具体进行一些表格样式、输出字体样式的调整。

具体代码如下:

using (FileStream fs = new FileStream(sfd.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite))
 {
     XSSFWorkbook workbook = new XSSFWorkbook();
     ISheet sheet = workbook.CreateSheet("Sheet1");

     string[] excelHeader = new string[] {"点名称","编号", "时间", "埋深(m)", "水深(m)", "测试01", "测试02", "测试03", "测试04", "测试05", "测试06", "测试06", "测试07", "测试08", "测试09"};
     IRow headerRow = sheet.CreateRow(0);
     for (int i = 0; i < excelHeader.Length; i++)
     {
         headerRow.CreateCell(i).SetCellValue(excelHeader[i]);
     }

     int count = mpInfoDictionary.Count;
     for (int i = 0; i < count; i++)
     {
         MeasurementPointInfo mpi = mpInfoDictionary[i];
         IRow row = sheet.CreateRow(i + 1);
         row.CreateCell(0).SetCellValue("名称");
         row.CreateCell(1).SetCellValue(mpi.nSeq);
         row.CreateCell(2).SetCellValue(mpi.nDate.ToString());
         row.CreateCell(3).SetCellValue(mpi.dbDepth);
         row.CreateCell(4).SetCellValue(mpi.dbWaterDepth);
         row.CreateCell(5).SetCellValue(mpi.dbCPTDInfo);
         row.CreateCell(6).SetCellValue(mpi.dbCPTDOffInfo);
         row.CreateCell(7).SetCellValue(mpi.dbOneDragDisplaceDSe);
         row.CreateCell(8).SetCellValue(mpi.dbOneDragDisplaceDSn);
         row.CreateCell(9).SetCellValue(mpi.dbOneDragDisplaceDSu);

         row.CreateCell(10).SetCellValue(mpi.dbCPInfo);
         row.CreateCell(11).SetCellValue(mpi.dbCPOffInfo);
         row.CreateCell(12).SetCellValue(mpi.dbDisplaceSE);
         row.CreateCell(13).SetCellValue(mpi.dbDisplaceSN);
         row.CreateCell(14).SetCellValue(mpi.dbDisplaceSU);    
     }

     workbook.Write(fs);           //写入到Excel中          
 }

可以导出如下所示表格:

c9e13e232a548807f0ca15105c1b1d60.png

寄语

人生短暂,我不想去追求自己看不见的,我只想抓住我能看得见的。

原创不易,给个关注。

我是阿辉,感谢您的阅读,如果对你有帮助,麻烦点赞、转发  谢谢。

很高兴能和您成为朋友。

45d5aaf4b091010629da20aac09f7954.png

065cd068db5b77a2fc35815d7aaedf07.png

推荐阅读

分享给同做程序员的你我他

毕业四年,我当初是如何走上编程这条路的!

物联网工程专业的迷茫与抉择

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值