读取excel到DataTable

 /// <summary>读取excel
        /// 默认第一行为表头,导入第一个工作表
        /// </summary>
        /// <param name="strFileName">excel文档路径</param>
        /// <returns></returns>
        public static DataTable Import(string strFileName)
        {
            DataTable dt = new DataTable();

            HSSFWorkbook hssfworkbook;
            using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))
            {
                hssfworkbook = new HSSFWorkbook(file);
            }
            ISheet sheet = hssfworkbook.GetSheetAt(0);
            System.Collections.IEnumerator rows = sheet.GetRowEnumerator();

            IRow headerRow = sheet.GetRow(0);
            int cellCount = headerRow.LastCellNum;

            for (int j = 0; j < cellCount; j++)
            {
                ICell cell = headerRow.GetCell(j);
                dt.Columns.Add(cell.ToString());
            }

            for (int i = (sheet.FirstRowNum + 2); i <= sheet.LastRowNum; i++)
            {//sheet.FirstRowNum + 2 正题数据
                IRow row = sheet.GetRow(i);
                DataRow dataRow = dt.NewRow();

                for (int j = row.FirstCellNum; j < cellCount; j++)
                {
                    if (row.GetCell(j) != null)
                        dataRow[j] = row.GetCell(j).ToString();
                }
                dt.Rows.Add(dataRow);
            }
            return dt;
        }
时间: 2024-10-10 15:20:26

读取excel到DataTable的相关文章

使用NPOI读取Excel到DataTable

一.NPOI介绍: 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作 二.安装NPOI 新建控制台应用程序>管理NuGet程序包>搜索NPOI>安装NPOI 三.下面是我需要的读取的Excel文件,数据格式如下: 四.添加ExcelHelper类: using System; using NPOI.SS.User

.net读取Excel转datatable、.net读取的Excel存在合并单元格并且转成datatable

项目中经常会遇到Excel导入数据,Excel的模板会可能是存在合并单元格的,模板如下图所示 读取时需要填充合并单元格的值,转成datatable单元格值时,填充合并单元格的值,如下图所示: 合并单元格的值填充,这种格式的datatable使用SqlBulkCopy批量导入更为方便 Excel转datatable方法代码: /// <summary> /// Excel转DataTable /// </summary> /// <param name="filePa

NPOI 读取excel到DataTable 读取隐藏列 读取公式列

处理思路: 1.打开excel 用NPOI进行读取: 2.读取第一个Sheet: 读取过程中: a.先设置相应列 不隐藏 b.读取Cell时 先判断是否的包含公式 相应代码如下: public static DataTable ReadDataFromExcelByNPOI() { DataTable dt = new DataTable(); var filePathAndName = Path.Combine(Server.MapPath("~/Content/Excel"), &

ASP.NET MVC使用NPOI读取excel数据

一.下载引用 目前官网不能直接下载到引用的dll,需要自己打包(我没有自己打包,我有现成的DLL,地址:https://files.cnblogs.com/files/dengxixi/NPOIdll.7z),即:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,ICSharpCode.SharpZipLib.dll(office2007版需要此dll). 二.创建MVC项目,页面代码: <html> <head> <meta name

服务器不装Excel读取Excel并转换DataTable

原来是用OleDb.4.0组件读取Excel,但是放到服务器后 傻了,服务器没装Excel ,而且领导说不可以装 没办法,只好自己重新找下代码 在CodeProject找到一个开源的dll,一阵欢喜啊,虽然是winform项目,但是主要是用他的类库所以提取一下后 自己研究后重新封装了一个类,运行 耶! 完美支持 需要Dome的同学下载后去研究下吧 地址:http://download.csdn.net/detail/jine515073/7266371 本人用 Excel 97-2003 工作表

使用NPOI读取Excel数据到DataTable

现在XML文件的存储格式大行其道,但是也不是适用于所有情况,很多单位的数据交换还是使用Excel的形式.这就使得我们需要读取Excel内的数据,加载到程序中进行处理.但是怎样有效率的读取,怎样使程序保持健壮,这需要很大的努力. 我们如果要写一个动态链接库会很花费时间和精力,这就使得开源项目是个很有效率的选择. 在各类关于Excel的开源项目中NPOI是中国的程序员发起的,他的一大好处是直接处理Ole文件,用户不必安装Office.现在发展到2.0还可以自动判断Excel文件版本,我们自己判断文件

【c#操作office】--OleDbDataAdapter 与OleDbDataReader方式读取excel,并转换为datatable

OleDbDataAdapter方式: /// <summary> /// 读取excel的表格放到DataTable中 ---OleDbDataAdapter /// </summary> /// <param name="strSql"></param>        /// <param name="excelpath">excel路径</param> /// <returns>

使用NPOI读取Excel的数据,插入到DataTable中

笔者最近遇到一个项目,需要做一个SSIS Package,修改Excel的列名,并在ssms中创建job自动执行,项目需求比较简单,由于笔者做过的Package比较少,所以经历了一番曲折. 我首先想到的是使用NPOI,在Script task中使用NPOI.dll,但是在使用NPOI时,Script task不能将NPOI自动导入到.net framework,需要执行一个gacutil的脚本,有点麻烦,放弃. 其次,我想到 Microsoft.Office.Interop.Excel.dll

C#:使用OleDb从Excel表格中读取信息到DataTable

从Excel表格中将数据读入到DataTable数据类型中,我是通过使用OLEDB来实现的 (OLEDB是Object Linking and Embedding Database的缩写) 现有一个扩展名为xlsx的工作簿文件"节气表.xlsx",在工作表Sheet1中有24个节气的信息 本文中的示例程序(代码将在后面给出)读取这个数据表后的效果如下图: 可以看出:OleDb读入一个Excel工作表(Sheet)的数据后,工作表的第一行会变成标题,第二行起,逐行变为DataTable的