处理思路:

1.打开excel 用NPOI进行读取;

2.读取第一个Sheet;

读取过程中:

a.先设置相应列 不隐藏

b.读取Cell时 先判断是否的包含公式

相应代码如下:

public static DataTable ReadDataFromExcelByNPOI()
{DataTable dt = new DataTable();var filePathAndName = Path.Combine(Server.MapPath("~/Content/Excel"), "ExcelForUploadTest.xls");//打开文件读取数据stream = System.IO.File.Open(filePathAndName2, FileMode.Open);    //通过Stream创建WorkbookHSSFWorkbook workbook = new HSSFWorkbook(stream);//获取excel的第一个sheetHSSFSheet sheet = (HSSFSheet)workbook.GetSheetAt(0);//设置隐藏列 为 不隐藏for (int iHide = 0; iHide <= 40; iHide++) {sheet.SetColumnHidden(iHide, false);}    //最后一列的标号(即总的行数)int rowCount = sheet.LastRowNum;//获取sheet的首行HSSFRow headerRow = (HSSFRow)sheet.GetRow(0);//一行最后一个方格的编号(即总的列数)int cellCount = headerRow.LastCellNum;string columnNames = @"A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,AR,AS,AT,AU,AV,AW,AX,AY,AZ";string[] columns = columnNames.Split(',');//使用 A B C D ... 字母的方式 命名DataTable的各列名for (int i = headerRow.FirstCellNum; i < cellCount; i++){        //DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);DataColumn column = new DataColumn(columns[i]);dt.Columns.Add(column);}for (int i = (iHeaderRowIndex.Value + 1); i <= rowCount; i++){                        HSSFRow row = (HSSFRow)sheet.GetRow(i);DataRow dataRow = dt.NewRow();if (row != null){for (int j = row.FirstCellNum; j < cellCount; j++){if (row.GetCell(j) != null){//如果是公式Cell //则仅读取其Cell单元格的显示值 而不是读取公式if (row.GetCell(j).CellType == CellType.FORMULA){dataRow[j] = row.GetCell(j).StringCellValue;}else{dataRow[j] = row.GetCell(j).ToString();}}}}//某标示列 33//某标示列 38//其值非空 标示是有效数据//其值为空 标示结束if(string.IsNullOrEmpty(dataRow[33].ToString())&& string.IsNullOrEmpty(dataRow[38].ToString())){break;//读取结束 退出For循环
        }else{dt.Rows.Add(dataRow);}}workbook = null;sheet = null;return dt;
}#endregion

转载于:https://www.cnblogs.com/freeliver54/p/5076462.html

NPOI 读取excel到DataTable 读取隐藏列 读取公式列相关推荐

  1. C#读取excel的有效行数或者最大有效列数

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using NPOI.SS. ...

  2. python数据可视化开发(2):pandas读取Excel的数据格式处理(数据读取、指定列数据、DataFrame转json、数学运算、透视表运算输出)

    系列文章目录 python开发低代码数据可视化大屏:pandas.read_excel读取表格 python实现直接读取excle数据实现的百度地图标注 python数据可视化开发(1):Matplo ...

  3. C# 读取Excel转换为DataTable的几种常见方式及实现步骤

    目录 1.使用 Microsoft Office Interop Excel 库 2.使用 OLEDB 数据库连接方式 3. 使用 EPPlus 库 在 C# 中,我们可以使用以下几种方式将 Exce ...

  4. python 读取excel文件 效率 时间 格式_python读取Excel文件中的时间数据

    在使用python读取Excel文件中的时间格式,碰到的时间格式转换问题: 读取这样的表格: 输出这样的数据结果: 然而这样的结果却不是我们想要的,我们需要的是这样的结果: 1.安装python官方库 ...

  5. python 读取excel图片_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

  6. 怎么用python读取excel图_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

  7. Java-POI读取excel(null的cell也读取输出)

    /*** * 读写excel* */public class RWExcel {private String filePath;private int sheetNum = 0;/*** 构造方法* ...

  8. 用python读取excel数据、并作图_Python读取Excel表格,并同时画折线图和柱状图的方法...

    今日给大家分享一个Python读取Excel表格,同时采用表格中的数值画图柱状图和折线图,这里只需要几行代码便可以实. 首先我们需要安装一个Excel操作的库xlrd,这个很简单,在安装Python后 ...

  9. java不用poi怎么读取excel,java-无法使用Apache POI读取Excel

    您必须包括poi jar文件.它的版本将是4.1.0.如果使用的是Maven pom.xml,请包括以下依赖项. org.apache.poi poi-ooxml 4.1.0 org.apache.p ...

最新文章

  1. Numpy_构建列向量
  2. Delete Master Data时的注意事项
  3. DateTime时间的比较问题
  4. cx oracle dpi 1002,cx_Oracle连接数据库总结
  5. 如何写出一个较好的快速排序程序
  6. 类和对象编程(七):this指针
  7. Improving Opencv 7: The Core Functionality : Discrete Fourier Transform
  8. Java文件上传接口
  9. Android监听系统来电,弹出提示窗口
  10. 搬砖(二分答案 + 线性规划)
  11. 2018年要过去了,年初说好要上完的网课呢?
  12. chrome最新版去掉书签栏上应用和还原默认页的方法
  13. windows查看自己的网卡名称
  14. 经济基础知识(初级)【16】
  15. 两个和尚的故事【摘】
  16. c语言输出2~100以内所有的素数
  17. Landsat系列卫星:Landsat 9 详解和细节(NASA/USGS)
  18. 微信客服接口 报错40003
  19. [论文阅读]BiSeNet V2: Bilateral Network with Guided Aggregation for Real-time Semantic Segmentation
  20. 什么是伪静态?网站伪静态有什么作用?

热门文章

  1. 2017乌鲁木齐ICPC: I. A Possible Tree(带权并查集)
  2. 继承基础概念与公有继承
  3. [机器学习] 概念解析:从经验风险、结构风险到代价函数、损失函数、目标函数
  4. Horizo​​ntal Pod Autoscaler (HPA) 根据资源横向扩展
  5. 支持kubernetes原生Spark 与其他应用的结合(mysql,postgresql,oracle,hdfs,hbase)
  6. kubernetes存储系统介绍(Volume、PV、dynamic provisioning,阿里云服务器nfs创建pv,hostpath创建pv)
  7. Hive 架构知识体系及语法详解
  8. java使用DES加密方式,实现对数据的加密解密
  9. 快速写出matlab的GUI程序
  10. 贺利坚老师汇编课程54笔记:CF进位标志CARRY FLAG