C# 操作Excel文件之NPOI (一)
此篇开始写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 (一)相关推荐
- C# 操作Excel文件之NPOI (三)
此方式会通过3篇文章将关于Excel的一些日常操作给实现出来,分别为:读取.写入.格式设置等: 本篇要记录的是使用NPOI设置Excel的样式. 先来看下我们的数据源 现在我们要将他导出到Excel中 ...
- hssfwork 导出excel 文件已损坏_C# NPOI 操作EXCEL文件的读取和导出
在实际项目中有很多场景遇到需要操作EXCEL文件,而常用到的库就有NPOI:NPOI是开源的POI 项目的.NET版,POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目, ...
- C# 使用NPOI 操作 Excel 文件
C# 使用NPOI 操作 Excel 文件 使用 创建 Excel 文件 创建 XLS 文件 创建 XLSX 文件 合并单元格 设置单元格格式 对齐 字体 边框 填充 保护 数字 下拉框 直接传递下拉 ...
- C#使用oledb操作excel文件的方法
本文实例讲述了C#使用oledb操作excel文件的方法.分享给大家供大家参考.具体分析如下: 不管什么编程语言都会提供操作Excel文件的方式,C#操作Excel主要有以下几种方式: 1.Excel ...
- 不安装Office操作Excel文件(.xlsx)
1.使用场景: 在不安装Office组件包的情况下,操作Excel文件(.xlsx).以前做过的好几个项目中,都需要对Excel文件处理,特别是将统计成果按照一定的格式和样式输出到Excel中,或将固 ...
- C#在客户端和服务端操作Excel文件
一.在客户端把数据导入到Excel文件步骤 1.创建Excel application对象,打开或生成Excel文件 //服务端创建StringBuilder对象 System.Text.St ...
- python处理excel表格实例-使用Python操作excel文件的实例代码
使用的类库 pip install openpyxl 操作实现 •工作簿操作 # coding: utf-8 from openpyxl import Workbook # 创建一个excel工作簿 ...
- C#操作Excel文件(转)
摘要:本文介绍了Excel对象.C#中的受管代码和非受管代码,并介绍了COM组件在.net环境中的使用. 关键词:受管代码:非受管代码:Excel对象:动态连接库 引言 Excel是微软公司办公自动化 ...
- php删除excel文件,php操作excel文件的方法小结
php操作excel文件的方法小结 php操作excel文件的方法有哪些?就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网! 一.php,不用COM,生成excel文件 ...
- C#操作Excel文件暨C#实现在Excel中将连续多列相同数据项合并
C#操作Excel文件(读取Excel,写入Excel) 看到论坛里面不断有人提问关于读取excel和导入excel的相关问题.闲暇时间将我所知道的对excel的操作加以总结,现在共享大家,希望给大家 ...
最新文章
- Web应用程序中(VS2005+SP1)添加App_Code(转)
- MySQL的几个概念:主键,外键,索引,唯一索引
- 解构华为云HE2E项目中的容器技术应用
- ArrayList源码解读(jdk1.8)
- java中的.take(),Rxjava2~take~timer~interval~buffer~filter等源码如何实现(你应该懂的)~学渣带你扣rxjava2...
- python下载不了怎么回事_python怎么下载
- 4-18快速生成get和set方法、格式化代码、数组的非空验证、订餐系统案例
- STM32Cube软件安装图文教程及视频演示
- 【渝粤教育】电大中专电商运营实操 作业 题库
- win10系统计算机物理地址,Win10系统怎么查看和修改网卡mac物理地址?
- qtxlsx读写 excel
- 禁用笔记本自带键盘技巧
- AltiumDesigner快捷键——SCH和SCHLIB编辑快捷键
- vue通过子组件修改父组件prop的几种实现方式
- 适合团队工作的软件,大家来看看有没有喜欢的吧
- DRGs病种付费与成本核算“八步法”
- 打印店打印黑白A4纸收费1元一张贵吗?
- STM32小白入门(第八天)-------低功耗蓝牙模块
- HS5104红外遥控芯片应用
- 百度地图关怀版(安卓)
热门文章
- python前缀_python前缀和算法
- vuejs登陆页面_20个最佳Vuejs登陆页面模板
- 【Format】ASF/WMV 文件格式解析
- ceph peering机制-状态机
- 必看! 为什么“吉祥物”可以提高UI设计以及品牌影响力
- RPM包安装卸载命令
- 关于浏览器及其内核以及什么是浏览器兼容性
- 有关于图片压缩大小--尺寸裁剪 和 压缩系数
- html自动拿微信扫描,HTML——微信浏览器H5页面调用微信扫一扫
- win10修改dns服务器命令,Win10怎么更改首选DNS服务器地址?