此篇开始写C#做Excel文件的第三种方式:NPOI。这也是个人目前所使用的最优秀,最强大的一种方式。

NPOI也可以在NuGet搜索下载,若通过其他平台下载的话。请将以下4个dll都加入引用:NPOI、NPOI.OOXML、NPOI.OpenXml4Net、NPOI.OpenXmlFormats。

此方式会通过3篇文章将关于Excel的一些日常操作给实现出来,分别为:读取、写入、格式设置等,本篇要记录的是使用NPOI读取Excel。

实现功能:

  • 使用NPOI的方式将Excel文件中的数据显示到dataGridView

开发环境:

开发工具:Visual Studio 2013

.NET Framework版本:4.5

实现代码:

首先需要导入以下命名空间:

using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using System.IO;
//实例化一个datatable用来存储数据DataTable dt = new DataTable();//指定excel所在路径string excelPath = "d:\\1.xlsx";//以文件流读取excel文件FileStream fs = new FileStream(excelPath, FileMode.Open, FileAccess.Read);//Offic2007以上IWorkbook workbook = new XSSFWorkbook(fs);//Offic2007以下if (excelPath.ToLower().EndsWith(".xls")){workbook = new HSSFWorkbook(fs);}//取第一个sheet页的数据ISheet sheet = workbook.GetSheetAt(0);//获取第一行数据IRow firstRow = sheet.GetRow(0);//获取第一行中数据列的数量int columnCount = firstRow.LastCellNum;for (int i = firstRow.FirstCellNum; i <= columnCount; i++){//获取单元格ICell cell = firstRow.GetCell(i);if (cell != null){//将第一行数据作为表头string cellValue = cell.StringCellValue;if (!string.IsNullOrEmpty(cellValue)){dt.Columns.Add(cellValue);}}}//获取数据行的数量int rowCount = sheet.LastRowNum;for (int i = 1; i <= rowCount; i++){//获取行IRow row = sheet.GetRow(i);if (row == null) continue;DataRow dataRow = dt.NewRow();for (int j = row.FirstCellNum; j <= dt.Columns.Count; j++){if (row.GetCell(j) != null){//这里减FirstCellNum可以去除空白列数据dataRow[j - row.FirstCellNum] = row.GetCell(j).ToString();}}dt.Rows.Add(dataRow);}//资源释放workbook.Close();//显示到页面dataGridView1.DataSource = dt;

使用NPOI读取的时候,可以根据判断指定到有数据的单元格,如:第一列是空白列的时候,可以从第二列开始读取到数据,前面所提到的两种方式就会存在直接将空白行或者空白列读取到datatable中的情况,需要进一步在datatable中做数据筛选。

由简入繁,拿来即用

后续精彩,持续关注

欢迎关注公众号: dotnet编程大全

技术群: 需要进技术群的添加小编微信mm1552923,备注:加群;

C# 操作Excel文件之NPOI (一)相关推荐

  1. C# 操作Excel文件之NPOI (三)

    此方式会通过3篇文章将关于Excel的一些日常操作给实现出来,分别为:读取.写入.格式设置等: 本篇要记录的是使用NPOI设置Excel的样式. 先来看下我们的数据源 现在我们要将他导出到Excel中 ...

  2. hssfwork 导出excel 文件已损坏_C# NPOI 操作EXCEL文件的读取和导出

    在实际项目中有很多场景遇到需要操作EXCEL文件,而常用到的库就有NPOI:NPOI是开源的POI 项目的.NET版,POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目, ...

  3. C# 使用NPOI 操作 Excel 文件

    C# 使用NPOI 操作 Excel 文件 使用 创建 Excel 文件 创建 XLS 文件 创建 XLSX 文件 合并单元格 设置单元格格式 对齐 字体 边框 填充 保护 数字 下拉框 直接传递下拉 ...

  4. C#使用oledb操作excel文件的方法

    本文实例讲述了C#使用oledb操作excel文件的方法.分享给大家供大家参考.具体分析如下: 不管什么编程语言都会提供操作Excel文件的方式,C#操作Excel主要有以下几种方式: 1.Excel ...

  5. 不安装Office操作Excel文件(.xlsx)

    1.使用场景: 在不安装Office组件包的情况下,操作Excel文件(.xlsx).以前做过的好几个项目中,都需要对Excel文件处理,特别是将统计成果按照一定的格式和样式输出到Excel中,或将固 ...

  6. C#在客户端和服务端操作Excel文件

    一.在客户端把数据导入到Excel文件步骤 1.创建Excel application对象,打开或生成Excel文件 //服务端创建StringBuilder对象     System.Text.St ...

  7. python处理excel表格实例-使用Python操作excel文件的实例代码

    使用的类库 pip install openpyxl 操作实现 •工作簿操作 # coding: utf-8 from openpyxl import Workbook # 创建一个excel工作簿 ...

  8. C#操作Excel文件(转)

    摘要:本文介绍了Excel对象.C#中的受管代码和非受管代码,并介绍了COM组件在.net环境中的使用. 关键词:受管代码:非受管代码:Excel对象:动态连接库 引言 Excel是微软公司办公自动化 ...

  9. php删除excel文件,php操作excel文件的方法小结

    php操作excel文件的方法小结 php操作excel文件的方法有哪些?就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网! 一.php,不用COM,生成excel文件 ...

  10. C#操作Excel文件暨C#实现在Excel中将连续多列相同数据项合并

    C#操作Excel文件(读取Excel,写入Excel) 看到论坛里面不断有人提问关于读取excel和导入excel的相关问题.闲暇时间将我所知道的对excel的操作加以总结,现在共享大家,希望给大家 ...

最新文章

  1. Web应用程序中(VS2005+SP1)添加App_Code(转)
  2. MySQL的几个概念:主键,外键,索引,唯一索引
  3. 解构华为云HE2E项目中的容器技术应用
  4. ArrayList源码解读(jdk1.8)
  5. java中的.take(),Rxjava2~take~timer~interval~buffer~filter等源码如何实现(你应该懂的)~学渣带你扣rxjava2...
  6. python下载不了怎么回事_python怎么下载
  7. 4-18快速生成get和set方法、格式化代码、数组的非空验证、订餐系统案例
  8. STM32Cube软件安装图文教程及视频演示
  9. 【渝粤教育】电大中专电商运营实操 作业 题库
  10. win10系统计算机物理地址,Win10系统怎么查看和修改网卡mac物理地址?
  11. qtxlsx读写 excel
  12. 禁用笔记本自带键盘技巧
  13. AltiumDesigner快捷键——SCH和SCHLIB编辑快捷键
  14. vue通过子组件修改父组件prop的几种实现方式
  15. 适合团队工作的软件,大家来看看有没有喜欢的吧
  16. DRGs病种付费与成本核算“八步法”
  17. 打印店打印黑白A4纸收费1元一张贵吗?
  18. STM32小白入门(第八天)-------低功耗蓝牙模块
  19. HS5104红外遥控芯片应用
  20. 百度地图关怀版(安卓)

热门文章

  1. python前缀_python前缀和算法
  2. vuejs登陆页面_20个最佳Vuejs登陆页面模板
  3. 【Format】ASF/WMV 文件格式解析
  4. ceph peering机制-状态机
  5. 必看! 为什么“吉祥物”可以提高UI设计以及品牌影响力
  6. RPM包安装卸载命令
  7. 关于浏览器及其内核以及什么是浏览器兼容性
  8. 有关于图片压缩大小--尺寸裁剪 和 压缩系数
  9. html自动拿微信扫描,HTML——微信浏览器H5页面调用微信扫一扫
  10. win10修改dns服务器命令,Win10怎么更改首选DNS服务器地址?