使用NPOI读取EXCEL中的数据到DataTable中

示例代码:

 static HSSFWorkbook hssfworkbook;
        /// <summary>
        /// 初始化Excel文件
        /// </summary>
        /// <param name="path">文件路径</param>
        public static DataTable initialWorkbook(string path)
        {
            using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
            {
                hssfworkbook = new HSSFWorkbook(fs);
            }
            HSSFSheet sheet = hssfworkbook.GetSheetAt(0);
            System.Collections.IEnumerator rows = sheet.GetRowEnumerator();
            DataTable dt = new DataTable();
            for (int i = 0; i < 5; i++)
            {
                dt.Columns.Add(Convert.ToChar(((int)'A') + i).ToString());
            }
            while (rows.MoveNext())
            {
                HSSFRow hr = (HSSFRow)rows.Current;
                DataRow dr = dt.NewRow();
                for (int i = 0; i < hr.LastCellNum; i++)
                {
                    HSSFCell hc = hr.GetCell(i);
                    if (hc == null)
                    {
                        dr[i] = null;
                    }
                    else
                    {
                        dr[i] = hc.ToString();
                    }
                }
                dt.Rows.Add(dr);
            }
            return dt;


        }
此为在控制台中使用,故定义了静态 HSSFWorkbook 变量

当需要处理的excel文件的后缀为.xlsx时,最好使用XSSFWorkbook进行操作。

posted @ 2020-07-06 19:02  hzangrg  阅读(163)  评论(0编辑  收藏  举报