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); }