热点资讯
软件开发公司 C# 操作Excel文献之OleDb花式
发布日期:2024-08-09 06:42 点击次数:120
关于Excel文献软件开发公司,念念必宇宙也王人知谈这个的紧迫性,非论是作念哪种言语的拓荒,王人少不了对Excel文献的操作;
app开发后头会用三种花式用来读取Excel,用来得志不同的表情需求;
图片
第一种花式即是本文所要讲的OleDb的花式,此花式相比肤浅,何况也不需要援用其他的第三方DLL,读取速率也还不错,然而关于一些其他的细节操作,可能需要读取到数据之后再径直对数据源进行优化;
OleDb聚合花式,使用ADO.NET怒放来取得Excel的数据源;
这里也再肤浅先容下说合字符串中各个字段的真义:
string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + excelPath + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\"";Provider是用来提供措施聚合到Excel;Data Source是要读取的Excel文献;Extended Properties 是建立 Excel 的属性;HDR用来疏导第一转是否为表头;IMEX暗意对文献操作的各式模式(0:写模式,1:读模式)
已毕功能:
使用Oledb将Excel文献中的数据浮现到dataGridView使用Sql语句添加数据到Excel
拓荒环境:
拓荒器用:Visual Studio 2013.NET Framework版块:4.5
已毕代码:
private void GetExcel(){ //实例化一个datatable用来存储数据 DataTable dt = new DataTable(); //指定excel方位旅途 string excelPath = "d:\\1.xlsx"; //Offic2007以上聚合字符串 string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + excelPath + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=1\""; //Offic2007以下聚合字符串 if (excelPath.ToLower().EndsWith(".xls")) { connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelPath + ";" + ";Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\""; } OleDbConnection OleConn = new OleDbConnection(connStr); OleConn.Open(); //复返excel文献的结构信息 DataTable dtSheet = OleConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); //取第一个sheet页的数据 string sql = string.Format("SELECT * FROM [{0}]", dtSheet.Rows[0]["TABLE_NAME"]); OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn); OleDaExcel.Fill(dt); //展示到页面 dataGridView1.DataSource = dt; //关闭说合 OleConn.Close();}
到这里,读取的代码就完成了,这技巧确定有一又友在念念,既然不错用ADO.NET去作念查询,那是否不错去作念更新大要插入呢?成果虽然是不错的了,软件开发公司按照咱们上头所先容的,需要先将IMEX的值建立为0,即可写模式,如下:
1. 蔚山现代成立于1983年,曾4次夺得韩K冠军,2次加冕亚冠冠军,4次闯进韩国足协杯决赛并1次夺冠,5次夺得韩国联赛杯。
“(球童)汤米-兰布(Tommy Lamb)在那里背过三届英国公开赛的包。他正与我聊这件事,”卢卡斯-格罗乌尔说,“他提到我也许需要开球铁杆。”
string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + excelPath + ";" + ";Extended Properties=\"Excel 12.0;HDR=YES;IMEX=0\"";
然后就不错跟操作数据库相同径直写Insert语句了,部分代码如下:
string sql = string.Format("insert into [{0}] values ('赵六','女','23')", dtSheet.Rows[0]["TABLE_NAME"]);OleDbCommand cmd = new OleDbCommand(sql, OleConn);cmd.ExecuteNonQuery();
由简入繁,拿来即用
后续精彩软件开发公司,抓续柔和
本站仅提供存储管事,扫数本色均由用户发布,如发现存害或侵权本色,请点击举报。