public class ExcelOperator
{
public static List<DataTable> Read(string fileName)
{
List<DataTable> tables = new List<DataTable>();
if (!File.Exists(fileName))
return tables;
var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
IWorkbook workbook = null;
if (fileName.IndexOf(".xlsx") > )
{
// 2007版本
workbook = new XSSFWorkbook(fs);
}
else if (fileName.IndexOf(".xls") > )
{
// 2003版本
workbook = new HSSFWorkbook(fs);
} var workbooks = workbook.GetEnumerator();
while (workbooks.MoveNext())
{
ISheet sheet = workbooks.Current as ISheet;
DataTable dt = new DataTable(sheet.SheetName);
var rows = sheet.GetRowEnumerator();
while (rows.MoveNext())
{
IRow row = rows.Current as IRow;
if (row.RowNum == )
{
row.Cells.ForEach(cell =>
{
dt.Columns.Add(cell.StringCellValue);
});
}
else
{
var dr = dt.NewRow();
for (int i = ; i < row.Cells.Count; i++)
{
dr[i] = row.Cells[i].ToString();
}
dt.Rows.Add(dr);
}
} tables.Add(dt);
}
return tables;
}
}

读取整个EXCEL方法

 public static DataTable ReadExcel(string fileName, string sheetname)
{
if (!File.Exists(fileName))
return null;
var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
IWorkbook workbook = null;
if (fileName.IndexOf(".xlsx") > )
{
// 2007版本
workbook = new XSSFWorkbook(fs);
}
else if (fileName.IndexOf(".xls") > )
{
// 2003版本
workbook = new HSSFWorkbook(fs);
}
ISheet sheet = workbook.GetSheet(sheetname);
DataTable dt = new DataTable();
var rows = sheet.GetRowEnumerator();
while (rows.MoveNext())
{
IRow row = rows.Current as IRow;
if (row.RowNum == )
{
row.Cells.ForEach(cell =>
{
dt.Columns.Add(cell.StringCellValue);
});
}
else
{
var dr = dt.NewRow();
for (int i = ; i < row.Cells.Count; i++)
{
dr[i] = row.Cells[i].ToString();
}
dt.Rows.Add(dr);
}
}
return dt;
}

读取指定SheetName的表

NPOI读取Excel文件的更多相关文章

  1. asp.net 使用NPOI读取excel文件

    asp.net 使用NPOI读取excel文件内容 NPOI下载地址:NPOI public class ExcelHelper { /// <summary> /// 读取Excel文件 ...

  2. NPOI 读取Excel文件

    private void buttonExcel_Click(object sender, EventArgs e) { FileStream fs = null; List<ISheet> ...

  3. NPOI读取excel文件导出数据, 而此时文件正在打开中抛异常怎么办

    项目中需要用到一些数值表格, 方便起见都是用excel来的. 而如果excel正打开中, 直接使用npoi制作的工具来导出数据的话, 在这一行将会异常: workbook = new XSSFWork ...

  4. C#利用NPOI操作Excel文件

    NPOI作为开源免费的组件,功能强大,可用来读写Excel(兼容xls和xlsx两种版本).Word.PPT文件.可是要让我们记住所有的操作,这便有点困难了,至此,总结一些在开发中常用的针对Excel ...

  5. 使用NPOI读取Excel表格内容并进行修改

    前言 网上使用NPOI读取Excel文件的例子现在也不少,本文就是参考网上大神们的例子进行修改以适应自己需求的. 参考博文 http://www.cnblogs.com/restran/p/38894 ...

  6. c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出

    c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...

  7. 读取Excel文件的两种方法比较 以及用NPOI写入Excel

    1. 采用NPOI方式,只需引用NPOI.dll,但目前最高只能到2.4.0版. 缺点:只支持.xls,不支持.xlsx格式.github上的2.4.1版支持.xlsx,但总提示缺ICSharpCod ...

  8. 读取Excel文件的两种方法

    第一种方法:传统方法,采用OleDB读取EXCEL文件, 优点:写法简单,缺点:服务器必须安有此组件才能用,不推荐使用 private DataSet GetConnect_DataSet2(stri ...

  9. NPOI读取Excel,导入数据到Excel练习01

    NPOI 2.2.0.0,初级读取导入Excel 1.读取Excel,将数据绑定到dgv上 private void button1_Click(object sender, EventArgs e) ...

随机推荐

  1. mysql之 percona-xtrabackup 2.4.7安装(热备工具)

    准备:os是centos6.7,提前下载并上传 percona-xtrabackup 安装包,下载网址为: https://www.percona.com/downloads/XtraBackup/L ...

  2. HIVE-如何查看执行日志

    HIVE既然是运行在hadoop上,最后又被翻译为MapReduce程序,通过yarn来执行.所以我们如果想解决HIVE中出现的错误,需要分成几个过程 HIVE自身翻译成为MR之前的解析错误 Hado ...

  3. 日志管理系统ELK6.2.3

    https://www.jianshu.com/p/88f2cbedcc2a 写在前面 刚毕业工作的时候,处理日志喜欢自己写脚本抓取数据分析日志,然后在zabbix上展示出来.但是开发要看日志的时候, ...

  4. POJ3321(dfs序列+树状数组)

    Apple Tree Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 25711   Accepted: 7624 Descr ...

  5. 几种排序方式的java实现(02:希尔排序,归并排序,堆排序)

    代码(部分为别人代码): 1.希尔排序(ShellSort) /* * 希尔排序:先取一个小于n的整数d1作为第一个增量, * 把文件的全部记录分成(n除以d1)个组.所有距离为d1的倍数的记录放在同 ...

  6. get方法传递中文数据的时候如何进行转码

    首先,如果是在js端的代码,用window.href进行请求时,需要进行转码 前台jsp中: var param = document.getElementById('param').value;pa ...

  7. AngularJS:模块

    ylbtech-AngularJS:模块 1.返回顶部 1. AngularJS 模块 模块定义了一个应用程序. 模块是应用程序中不同部分的容器. 模块是应用控制器的容器. 控制器通常属于一个模块. ...

  8. postgresql 主从复制并切换

    1 环境 192.168.19.145 Kylin 3.3 mysqlhq  9.5.2  psql_master192.168.19.227 Kylin 3.3 mysql3    9.5.2  p ...

  9. PostgreSQL本地化

    从管理员的角度描述可用的本地化特性.PostgreSQL支持两种本地化方法:利用操作系统的区域(locale)特性,提供对区域相关的排序顺序.数字格式. 翻译过的信息和其它方面.提供一些不同的字符集来 ...

  10. jackson 进行json与java对象转换 之四

    jackson简单使用,对象转json,json转对象,json转list   POJO序列化为json字符串: 准备一个POJO: @JsonIgnoreProperties(ignoreUnkno ...