首页 > 代码库 > 读取Excel中数据
读取Excel中数据
#region 读取导入Excel数据 /// <summary> /// /// </summary> /// <param name="filename"></param> /// <param name="fields"></param> /// <returns></returns> public DataSet ReadDataFromExcel(string filename, string fields) { DataSet ds = new DataSet(); try { string cnn = string.Empty; string ext = Path.GetExtension(filename).ToLower(); if (ext == ".xls") { cnn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + filename + ";Extended Properties=" + (char)34 + "Excel 8.0;HDR=Yes;IMEX=1;" + (char)34; } else if (ext == ".xlsx") { cnn = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + filename + ";Extended Properties=" + (char)34 + "Excel 12.0;HDR=Yes;IMEX=1;" + (char)34; } else { throw new Exception("读取失败,非excel文件格式。"); } using (OleDbConnection connection = new OleDbConnection(cnn)) { connection.Open(); DataTable tables = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); foreach (DataRow row in tables.Rows) { string table = row["TABLE_NAME"].ToString(); DataTable dt = ReadEachExcelSheetData(connection, table, fields); if (dt != null) { ds.Tables.Add(dt.Copy()); } } } return ds; } catch (Exception ex) { throw new Exception("数据文件或者内容格式有严重错误(" + ex.Message + "),请检查!"); } } public DataTable ReadEachExcelSheetData(OleDbConnection connection, string table, string fields) { try { string sql = string.Empty; string query = string.Empty; if (fields.IndexOf(‘,‘) > 0) { foreach (string column in fields.Split(‘,‘)) { query += "[" + column + "],"; } query = query.Trim(‘,‘); } else { query = fields; } sql = @" SELECT {0} FROM [{1}] "; sql = string.Format(sql, query, table); DataSet ds = new DataSet(); OleDbDataAdapter adapter = new OleDbDataAdapter(sql, connection); adapter.Fill(ds, table); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { return ds.Tables[0]; } } catch (Exception ex) { throw ex; } return null; } private DataSet GetDataFromExcel(string filename,string fields) { DataSet ds = new DataSet(); string cnn = string.Empty; string ext = Path.GetExtension(filename).ToLower(); if (ext == ".xls") { cnn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " + filename + ";Extended Properties=" + (char)34 + "Excel 8.0;HDR=Yes;IMEX=1;" + (char)34; } else if (ext == ".xlsx") { cnn = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + filename + ";Extended Properties=" + (char)34 + "Excel 12.0;HDR=Yes;IMEX=1;" + (char)34; } else { throw new Exception("读取失败,非excel文件格式。"); } using (OleDbConnection connection = new OleDbConnection(cnn)) { connection.Open(); DataTable tables = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); string tableName = tables.Rows[0]["TABLE_NAME"].ToString(); string sql = "select * from [{0}]"; sql = string.Format(sql, tableName); OleDbCommand command = connection.CreateCommand(); command.CommandText = sql; OleDbDataAdapter adapter = new OleDbDataAdapter(command); adapter.Fill(ds); return ds; } } #endregion
读取Excel中数据
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。