Exemple #1
0
        static void testExcel()
        {
            //            结论:放弃,因为数据量大了,还是会报Out Of Memory错误的。
            //44.5M的文件是不会报Out of Memory错误的。
            //两个44.5M是会报错的Out of Memory错误。
            //用OleDb 读数据,是不会报Out of Memory错误

            DataSet    ds           = new DataSet();
            IExcelInfo dao          = DALFactory.GetExcelInfoDAL();
            string     strExcelPath = "./documents/8大数据测试44.5M.xlsx";

            using (var objConn = ConnectionFactory.GetExcelOleDbConnection(strExcelPath))
            {
                // 返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等
                ds = dao.GetDataSet(objConn, new List <string>()
                {
                    "工作表1$",
                });
            }

            if (ds.Tables.Count > 0)
            {
                var rowsCount = ds.Tables[0].Rows.Count;
            }
        }
        public DataSet GetExcelDataBaseDesignInfo(string strExcelPath)
        {
            //数据表
            DataSet ds = new DataSet();

            IExcelInfo dao = DALFactory.GetExcelInfoDAL();

            using (var objConn = ConnectionFactory.GetExcelOleDbConnection(strExcelPath))
            {
                // 返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等
                DataTable dtSheetName = ((OleDbConnection)objConn).GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });

                List <string> sheetList = this.GetTableNameList(dtSheetName);

                ds = dao.GetDataSet(objConn, sheetList);
            }

            return(ds);
        }