需要的Dll: NPOI.OOXML.dll    https://files.cnblogs.com/files/CityOfThousandFires/NPOI.dl.rar

 /// <summary>
/// Excel->DataTable
/// </summary>
/// <param name="filePath">Excel文件路径</param>
public static DataTable ReadExcel(string filePath)
{
IWorkbook iwkX;
using (FileStream fs = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
iwkX = WorkbookFactory.Create(fs);
fs.Close();
}
//sheet
DataTable dt = new DataTable();
for (int h = 0; h < iwkX.NumberOfSheets; h++)
{
ISheet sheet = iwkX.GetSheetAt(h);
var rows = sheet.GetRowEnumerator();
bool isMove = rows.MoveNext();
//循环sheet
if (isMove)
{
var Cols = (IRow)rows.Current;
dt.TableName = sheet.SheetName;
for (int i = 0; i < Cols.LastCellNum; i++)
{
string str = Cols.GetCell(i).ToString();
dt.Columns.Add(Cols.GetCell(i).ToString());
}
while (rows.MoveNext())
{
var row = (IRow)rows.Current;
var dr = dt.NewRow();
for (int i = 0; i < row.LastCellNum; i++)
{
var cell = row.GetCell(i);
if (cell == null)
{
dr[i] = "";
}
else
{
string strdr = cell.ToString();
dr[i] = cell.ToString();
}
}
dt.Rows.Add(dr);
}
}
} return dt;
}

  

最新文章

  1. Android中的多线程断点下载
  2. xml引用实体dtd不能成功的问题
  3. stdcall, cdecl, pascal 区别(转载)
  4. enmo_day_05
  5. web classpath 路径说明
  6. webbrowser代理c#代码实现
  7. 为Windows 7的winsxs目录瘦身,谨慎。
  8. poj 3666 Making the Grade(dp)
  9. QDataStream类参考(串行化数据,可设置低位高位,以及版本号),还有一个例子
  10. leetcode Minimum Depth of Binary Tree python
  11. Regex阅读笔记(二)之环视
  12. 转:MySql的commit和rollback
  13. spring boot gradle build:bootRepackage failed
  14. CentOS 7 使用iptables防火墙
  15. 学号 20175329 2018-2019-3《Java程序设计》第九周学习总结
  16. zabbix 自带监控项报性能问题解决方法
  17. js--------1.时间
  18. codevs1735 方程的解数(meet in the middle)
  19. Python 类的初见
  20. 全网最详细Apache Kylin1.5安装(单节点)和测试案例

热门文章

  1. react后台管理系统路由方案及react-router原理解析
  2. Qt自动生成.rc文件并配置对应属性 程序图标 版本 描述等
  3. Android 图片裁剪踩坑
  4. 关于JSON数据体积优化的一点小心得
  5. nodejs使用redis实现单例锁
  6. LR脚本信息函数-lr_user_data_point
  7. Java多线程之volatile详解
  8. 虚拟机VMware克隆之后网络不可用的解决办法
  9. pikachu靶场-暴力破解(验证码、token)
  10. 【转载】张一鸣:为什么 BAT 挖不走我们的人才?