asp.net读取Excel文件的两种方法,NPOI方法

来源:互联网 发布:mac如何删除系统文件 编辑:程序博客网 时间:2024/05/16 23:58

~_~一个程序员的淘宝店: 点击打开链接


第一种方法:传统方法,采用OleDB读取EXCEL文件,

优点:写法简单,缺点:服务器必须安有此组件才能用,不推荐使用

  private DataSet GetConnect_DataSet2(string fileName)        {            DataSet myDataSet = new DataSet();            //创建一个数据链接            string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " + fileName + ";Extended Properties=Excel 8.0";            OleDbConnection myConn = new OleDbConnection(strCon);            string strCom = " SELECT * FROM [Sheet1$] ";            //try            //{            myConn.Open();            //打开数据链接,得到一个数据集            OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);            //创建一个 DataSet对象            myDataSet = new DataSet();            //得到自己的DataSet对象            myCommand.Fill(myDataSet, "CodeTable");            //关闭此数据链接            myConn.Close();            //}            //catch (Exception ex)            //{            //}            return myDataSet;        }



第二种方法:用第三方组件:NPOI组件,推荐使用此方法

先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0或者.net4.0的dll),然后在网站中添加引用。

NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。

使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。

NPOI采用的是Apache 2.0许可证(poi也是采用这个许可证),这意味着它可以被用于任何商业或非商业项目,你不用担心因为使用它而必须开放你自己的源代码,所以它对于很多从事业务系统开发的公司来说绝对是很不错的选择。

当然作为一个开源许可证,肯定也是有一些义务的,例如如果你在系统中使用NPOI,你必须保留NPOI中的所有声明信息。对于源代码的任何修改,必须做出明确的标识。


 //config中配置的上传的Excel路径        static object basePath = ConfigurationManager.AppSettings["FilePath"];        #region 读取Excel文件        /// <summary>        /// 读取Excel文件到table中        /// </summary>        /// <param name="filePath">excel文件路径</param>        /// <returns></returns>        public static DataTable ReadExcel(string fileName)        {            DataTable dt = new DataTable();            string filePath = "";            if (basePath != null)            {                filePath = HostingEnvironment.MapPath((basePath.ToString() + fileName));                dt = ImportExcelFile(filePath);            }            //文件是否存在            if (System.IO.File.Exists(filePath))            {            }            return dt;        }        public static DataTable ImportExcelFile(string filePath)        {            HSSFWorkbook hssfworkbook;            #region//初始化信息            try            {                using (FileStream file = new FileStream(filePath, FileMode.Open, FileAccess.Read))                {                    hssfworkbook = new HSSFWorkbook(file);                }            }            catch (Exception e)            {                throw e;            }            #endregion            NPOI.SS.UserModel.ISheet sheet = hssfworkbook.GetSheetAt(0);            System.Collections.IEnumerator rows = sheet.GetRowEnumerator();            DataTable dt = new DataTable();            rows.MoveNext();            HSSFRow row = (HSSFRow)rows.Current;            for (int j = 0; j < (sheet.GetRow(0).LastCellNum); j++)            {                //dt.Columns.Add(Convert.ToChar(((int)'A') + j).ToString());                //将第一列作为列表头                dt.Columns.Add(row.GetCell(j).ToString ());            }            while (rows.MoveNext())            {                 row = (HSSFRow)rows.Current;                DataRow dr = dt.NewRow();                for (int i = 0; i < row.LastCellNum; i++)                {                    NPOI.SS.UserModel.ICell cell = row.GetCell(i);                    if (cell == null)                    {                        dr[i] = null;                    }                    else                    {                        dr[i] = cell.ToString();                    }                }                dt.Rows.Add(dr);            }            return dt;        }        #endregion    
1 1
原创粉丝点击