用NPOI从Excel到DataTable
NPOI功能强大,不用装Excel,就可以操作表格中数据----Excel.Sheet------>DataTable
private IWorkbook workbook = null;
private ISheet sheet = null;
private string fileName = "";//文档路径
private FileStream fs = null; public ExcelHelper()
{
}
//构造函数
public ExcelHelper(string file)
{
this.fileName = file;
}
/// <summary>
/// 用NPOI从Excel到DatTable
/// </summary>
/// <returns></returns>
public DataTable ExcelToDataTable()
{
DataTable dt = new DataTable();
fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
if (System.IO.Path.GetExtension(fileName) == ".xls")
{
workbook = new HSSFWorkbook(fs);
}
else if (System.IO.Path.GetExtension(fileName) == ".xlsx")
{
workbook = new XSSFWorkbook(fs);
}
else
{
throw new Exception("文件类型错误");
}
sheet = workbook.GetSheetAt();
if (sheet != null)
{
IRow firstRow = sheet.GetRow(); //表头
for (int i = firstRow.FirstCellNum; i < firstRow.LastCellNum; i++)
{
ICell cell = firstRow.GetCell(i);
if (cell != null)
{
DataColumn column = new DataColumn(cell.StringCellValue);
dt.Columns.Add(column);
}
}
//表数据 Access数据库时,加“等号”-j <= sheet.LastRowNum
for (int j = sheet.FirstRowNum + ; j <= sheet.LastRowNum; j++)
{
IRow row = sheet.GetRow(j);
if (row == null)
{
continue;
}
DataRow dataRow = dt.NewRow();
for (int i = row.FirstCellNum; i < firstRow.LastCellNum; i++)
{
ICell cell = row.GetCell(i);
//加日期处理
if (cell.CellType == CellType.Numeric && DateUtil.IsCellDateFormatted(cell))
{
dataRow[i] = cell.DateCellValue.ToString();
}
else
{
dataRow[i] = cell.ToString();
}
}
dt.Rows.Add(dataRow);
}
}
return dt;
}
用NPOI从Excel到DataTable的更多相关文章
- 使用NPOI读取Excel到DataTable
		
一.NPOI介绍: 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office ...
 - NPOI操作Excel导入DataTable中
		
using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using System.Data; using System.IO; using NPOI.X ...
 - NPOI 读取excel到DataTable 读取隐藏列 读取公式列
		
处理思路: 1.打开excel 用NPOI进行读取: 2.读取第一个Sheet: 读取过程中: a.先设置相应列 不隐藏 b.读取Cell时 先判断是否的包含公式 相应代码如下: public sta ...
 - NPOI导入excel为datatable  (xls xlsx xlsm)
		
使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中 http://www.cnblogs.com/songrun/p/3547738.html NPOI 2.0教程 – 自动 ...
 - NPOI 将excel转换为datatable或者将datatable转换为excel
		
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
 - NPOI对Excel的操作(Sheet转DataTable、List<T>)
		
通过NPOI对Excel进行操作,这里主要是读取的操作.封装到ExcelHelper操作类中. 1 using System.Collections.Generic; 2 using NPOI.HSS ...
 - [转].net 使用NPOI或MyXls把DataTable导出到Excel
		
本文转自:http://www.cnblogs.com/yongfa365/archive/2010/05/10/NPOI-MyXls-DataTable-To-Excel-From-Excel.ht ...
 - Excel操作--使用NPOI导入导出Excel为DataTable
		
1.ExcelHelper封装 namespace NPOI操作Excel { public class ExcelHelper { /// <summary> /// DataTable ...
 - 利用npoi把多个DataTable导入Excel多个sheet中
		
{ 题外拓展:把datatable插入dataset DataTable fuben = new DataTable();//定义的datatablefuben = table.Tables[0].C ...
 
随机推荐
- 使用NetBeans生成jar包,并在jar包中添加资源
			
在NetBeans中,执行Clean and Build便可得到jar文件 若要在jar中添加资源,先用压缩软件打开jar,然后将资源拖进当前归档文件即可 使用Class.getResource(St ...
 - 记录001:AS11 BAPI
			
未知元素(174657434) 15:05:41AS11有没有BAPI呀?有做过的吗 BAPI_FIXEDASSET_OVRTAKE_CREATE
 - [转]GPS经纬度的表示方法及换算
			
想要认识GPS中的经纬度,就必须先了解GPS,知道经纬度的来源: 1. GPS系统组成 GPS是 Gloabal Positioning System 的简称,意为全球定位系统,主要由地面的控制站.天 ...
 - STM32 DMA中断只进入一次的解决办法
			
问题解决参见:http://bbs.ednchina.com/BLOG_ARTICLE_3014819.HTM 经过我验证,这个说的是对的.
 - td 中设置超出宽度显示省略号失效
			
td测试内容超出显示省略号时,结果没有显示省略号,而是一直往后显示,且超出了td大小,强行挤大了table. 原因是因为td默认不换行. 解决方法: 1.强制td换行. IE加上word-break: ...
 - Linux 进程等待队列【转】
			
本文转载自:http://blog.csdn.net/dlutbrucezhang/article/details/9212067 Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制 ...
 - Linux:NFS文件共享问题重新认识
			
之前也搭建过nfs,服务器之间目录里面的文件同享也一直正常.今天有现场反映,搭建nfs后,客户端文件在服务器端看不见. 在我之前的认识里,服务器端搭建好并启动nfs服务,客户端mount后,客户端.服 ...
 - 简易五子棋 V1.1.0
			
main.cpp #include "fivechess.cpp" int main() { fivechess a; a.RunGame(); getchar(); return ...
 - iOS添加弹出菜单
			
最近接触的项目需要实现一个弹出窗,类似于点击微信navigation bar右上角的bar button所展现的弹出窗,最终效果如下: Demo代码存放在https://github.com/LuoD ...
 - 「NOIP2010」「LuoguP1514」引水入城
			
Description 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个 N×M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一 ...