温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#如何通过oledb操作Excel

发布时间:2021-03-06 14:07:30 来源:亿速云 阅读:318 作者:小新 栏目:编程语言

小编给大家分享一下C#如何通过oledb操作Excel,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

整理文档,搜刮出一个C# 通过 oledb 操作Excel实例代码,稍微整理精简一下做下分享。

public string GetConnectionString()     {       Dictionary<string, string> props = new Dictionary<string, string>();         // XLSX - Excel 2007, 2010, 2012, 2013       props["Provider"] = "Microsoft.ACE.OLEDB.12.0;";       props["Extended Properties"] = "Excel 12.0 XML";       props["Data Source"] = @"C:\tools\MyExcel.xlsx";         // XLS - Excel 2003 and Older       //props["Provider"] = "Microsoft.Jet.OLEDB.4.0";       //props["Extended Properties"] = "Excel 8.0";       //props["Data Source"] = "C:\\MyExcel.xls";         var sb = new StringBuilder();         foreach (KeyValuePair<string, string> prop in props)       {         sb.Append(prop.Key);         sb.Append('=');         sb.Append(prop.Value);         sb.Append(';');       }         return sb.ToString();     }       public void WriteExcelFile()     {       string connectionString = GetConnectionString();         using (OleDbConnection conn = new OleDbConnection(connectionString))       {         conn.Open();         OleDbCommand cmd = new OleDbCommand();         cmd.Connection = conn;           cmd.CommandText = "CREATE TABLE [table1] (id INT, name VARCHAR, datecol DATE );";         cmd.ExecuteNonQuery();           cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(1,'AAAA','2014-01-01');";         cmd.ExecuteNonQuery();           cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(2, 'BBBB','2014-01-03');";         cmd.ExecuteNonQuery();           cmd.CommandText = "INSERT INTO [table1](id,name,datecol) VALUES(3, 'CCCC','2014-01-03');";         cmd.ExecuteNonQuery();           cmd.CommandText = "UPDATE [table1] SET name = 'DDDD' WHERE id = 3;";         cmd.ExecuteNonQuery();           conn.Close();       }     }       public DataSet ReadExcelFile()     {       DataSet ds = new DataSet();         string connectionString = GetConnectionString();         using (OleDbConnection conn = new OleDbConnection(connectionString))       {         conn.Open();         OleDbCommand cmd = new OleDbCommand();         cmd.Connection = conn;           // Get all Sheets in Excel File         DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);           // Loop through all Sheets to get data         foreach (DataRow dr in dtSheet.Rows)         {           string sheetName = dr["TABLE_NAME"].ToString();             if (!sheetName.EndsWith("$"))             continue;             // Get all rows from the Sheet           cmd.CommandText = "SELECT * FROM [" + sheetName + "]";             DataTable dt = new DataTable();           dt.TableName = sheetName;             OleDbDataAdapter da = new OleDbDataAdapter(cmd);           da.Fill(dt);             ds.Tables.Add(dt);         }           cmd = null;         conn.Close();       }         return ds;     }

以上是“C#如何通过oledb操作Excel”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI