ASP.NET中使用开源组件NPOI快速导入导出Execl数据(2)

if (IsMobile(row.GetCell(1).ToString()))
                    {
                        dt.Rows.Add(newRow);
                    }

}
         }

}

return dt.DefaultView;
}

这个Execl导入功能实现的是将数据导入Gridview中去,你如果想导入到数据库或其他数据存储介质,代码换成:

复制代码 代码如下:


/// <summary>
/// 导入Execl信息
/// </summary>
/// <returns></returns>
 private void LoadExeclFile()
{
    string filepath = @"data.xls";  //读取本地Execl,当前路径是该程序的所在目录
    HSSFWorkbook wb = new HSSFWorkbook(new FileStream(filepath, FileMode.Open));
    HSSFSheet sheet = wb.GetSheet("data") as HSSFSheet; //获取execl中名字为data的sheet表格数据

if (sheet != null)
    {
        //导入数据
        for (int i = 1; i <= sheet.LastRowNum; i++) //获得所有行数
        {
               IRow row = sheet.GetRow(i); //读取当前行数据
               if (row != null)
               {
                   InsertDataIntoDB(row.GetCell(0).ToString(),row.GetCell(1).ToString(),row.GetCell(2).ToString(),row.GetCell(3).ToString());
               }  
     }    
   } 
}

看过代码之后,我相信你能感知到NPOI的对Execl操作的强大已经无法用言语形容了。上诉的导入导出应该是平常开发中使用最频繁的Execl操作了,而且NPOI基本上已经将各类方法封装到极致了,除非你有特殊业务场景,不然只要稍作修改,就能满足自己不同的业务需求了。当然,上诉方案还是有些问题所在的,解决思路大体类似,时间换空间,或空间换时间。比如:

–导出数据量很大的话,获取数据以及对数据加工处理,多会遇到性能问题,严重的话甚至是内存溢出,程序报错。解决思路很简单, 代码改造一下,采用分页获取数据,导出到多个sheet或者分成多个execl导出,代码我就懒得写了。

总结一下NPOI的优缺点吧:

优点:使用超级简洁,小白也能看的明白。独立组件,引用即可。无需第三方依赖。编码灵活控制,兼容性优秀。性能使用下来非常优异,源码写的也特漂亮…

缺点:如果有,请告诉我吧!

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjzgfw.html