{"id":196,"date":"2019-10-12T23:41:16","date_gmt":"2019-10-12T20:41:16","guid":{"rendered":"http:\/\/www.cuneytbayrak.com\/?p=196"},"modified":"2025-02-20T23:41:50","modified_gmt":"2025-02-20T20:41:50","slug":"c-excel-dosyasindan-datagridview-nesnesine-veri-aktarmak","status":"publish","type":"post","link":"http:\/\/www.cuneytbayrak.com\/?p=196","title":{"rendered":"C# Excel dosyas\u0131ndan DataGridView nesnesine veri aktarmak"},"content":{"rendered":"<p>Elimizde bir excel dosyas\u0131 var ve projemizde bu dosyan\u0131n i\u00e7eri\u011fine eri\u015fmek isteyebiliriz. Bu durumda\u00a0OleDbConnection s\u0131n\u0131f\u0131 ile ilgili excel dosyas\u0131na eri\u015fip istedi\u011fimiz sayfas\u0131ndan excelin verilerini\u00a0DataGridView nesnesine aktarabiliriz. Bu \u00f6renkte ben\u00a0DataGridView nesnesi tercih ettim. Sizler ba\u015fka tablo nesnelerine de pek tabi veri alabilirsiniz. \u00d6rne\u011fin ListView vb\u2026<\/p>\n<p>\u0130lk i\u015fimiz OpenFileDialog penceresi a\u00e7t\u0131r\u0131p ilgili excel dosyas\u0131n\u0131 se\u00e7tirmek olsun. Bunun i\u00e7in a\u015fa\u011f\u0131da ki kodlar\u0131 kullanaca\u011f\u0131z.<\/p>\n<div class=\"wp-block-codemirror-blocks code-block \">\n<pre class=\"CodeMirror\" data-setting=\"{&quot;mode&quot;:&quot;clike&quot;,&quot;mime&quot;:&quot;text\/x-csharp&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;lineWrapping&quot;:false,&quot;styleActiveLine&quot;:false,&quot;readOnly&quot;:true,&quot;align&quot;:&quot;&quot;}\">OpenFileDialog file = new OpenFileDialog();\r\nfile.Filter = \"Excel Dosyas\u0131 |*.xlsx| Excel Dosyas\u0131|*.xls\";\r\nfile.FilterIndex = 1;\r\nfile.RestoreDirectory = true;\r\nfile.CheckFileExists = false;\r\nfile.Title = \"Aktar\u0131m Yap\u0131lacak Excel Dosyas\u0131 Se\u00e7iniz..\";\r\nfile.Multiselect = false; \/\/Buras\u0131 \u00f6nemli. Multiselecti pasif yapmam\u0131z laz\u0131m. Aksi halde birden \u00e7ok se\u00e7im i\u015fimize gelmeyecektir. Biz bir adet dosya se\u00e7ece\u011fiz.\r\nstring DosyaYolu = \"\";\r\n\r\nif (file.ShowDialog() == DialogResult.OK)\r\n{\r\nDosyaYolu = file.FileName;\r\n}<\/pre>\n<\/div>\n<p>Yukar\u0131da ki kodlar yard\u0131m\u0131 ile excel dosyam\u0131z\u0131 se\u00e7mi\u015f olduk ve se\u00e7ilen excel dosyas\u0131n\u0131n dosya yolunu da elde etmi\u015f olduk. Peki bu dosya yolu ne i\u015fe yarayacak derseniz; bu dosya yolu ile OleDbConnection ba\u011flant\u0131s\u0131 ger\u00e7ekle\u015ftirece\u011fiz. Hadi yapal\u0131m \u015fu i\u015fi.<\/p>\n<p><strong>Not: OleDbConnection nesnesi t\u00fcretmek i\u00e7in\u00a0using System.Data ve\u00a0using System.Data.OleDb yapmay\u0131 unutmay\u0131n.<\/strong><\/p>\n<div class=\"wp-block-codemirror-blocks code-block \">\n<pre class=\"CodeMirror\" data-setting=\"{&quot;mode&quot;:&quot;clike&quot;,&quot;mime&quot;:&quot;text\/x-csharp&quot;,&quot;theme&quot;:&quot;material&quot;,&quot;lineNumbers&quot;:true,&quot;lineWrapping&quot;:false,&quot;styleActiveLine&quot;:false,&quot;readOnly&quot;:true,&quot;align&quot;:&quot;&quot;}\">OleDbConnection baglanti = new OleDbConnection(\"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\"+DosyaYolu+\"; Extended Properties='Excel 12.0 xml;HDR=YES;'\");\r\nbaglanti.Open();\r\nDataTable abc = baglanti.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);\r\nstring ExcelSheetName = abc.Rows[0][\"Table_Name\"].ToString();\r\nOleDbDataAdapter da = new OleDbDataAdapter(\"SELECT * FROM [\"+ExcelSheetName+\"]\", baglanti);\r\nDataTable dt = new DataTable();\r\nda.Fill(dt);\r\ndataGridView1.DataSource = \"\";\r\ndataGridView1.Columns.Clear();\r\ndataGridView1.DataSource = dt.DefaultView;\r\nbaglanti.Close();\r\ndataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;\r\n<\/pre>\n<\/div>\n<p><strong>Not:Provider olarak Microsoft.ACE.OLEDB.12.0 kulland\u0131m. E\u011fer sizde \u00e7al\u0131\u015fmaz ise muhtemelen AccesDatabaseEngine kurman\u0131z gerekmektedir. Bunun i\u00e7in\u00a0<a href=\"https:\/\/www.microsoft.com\/en-us\/download\/details.aspx?id=54920\" target=\"_blank\" rel=\"noopener noreferrer\">T\u0131klay\u0131n<\/a>.<\/strong><\/p>\n<p>Fark ettiyseniz\u00a0 \u201cstring ExcelSheetName = abc.Rows[0][\u201cTable_Name\u201d].ToString();\u201d kod sat\u0131r\u0131nda, \u201cRows[0]\u201d diyerek, \u201cGetOleDbSchemaTable\u201d ile getirmi\u015f oldu\u011fum excel sayfalar\u0131ndan ilkini se\u00e7mi\u015f oldum. Burada ilgili excelin hangi sayfas\u0131n\u0131 getirece\u011fimi bildi\u011fim i\u00e7in b\u00f6yle yapm\u0131\u015f oldum. Dilerseniz \u201cGetOleDbSchemaTable\u201d ile d\u00f6nen sayfa isimlerini ayr\u0131 bir dialog penceresine yazd\u0131r\u0131p onlar aras\u0131ndan bir se\u00e7im yapt\u0131rarak da istedi\u011finiz excel dosyas\u0131n\u0131n sayfas\u0131n\u0131 aktarmak m\u00fcmk\u00fcn. Bu tamamen sizin tasar\u0131m\u0131n\u0131za kalm\u0131\u015f bir se\u00e7enek.<\/p>\n<p>Kolay gele&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Elimizde bir excel dosyas\u0131 var ve projemizde bu dosyan\u0131n i\u00e7eri\u011fine eri\u015fmek isteyebiliriz. Bu durumda\u00a0OleDbConnection s\u0131n\u0131f\u0131 ile ilgili excel dosyas\u0131na eri\u015fip istedi\u011fimiz sayfas\u0131ndan excelin verilerini\u00a0DataGridView nesnesine aktarabiliriz. Bu \u00f6renkte ben\u00a0DataGridView nesnesi&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"http:\/\/www.cuneytbayrak.com\/?p=196\">Devam\u0131n\u0131 Oku<span class=\"screen-reader-text\">C# Excel dosyas\u0131ndan DataGridView nesnesine veri aktarmak<\/span><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":0,"footnotes":""},"categories":[3],"tags":[57],"class_list":["post-196","post","type-post","status-publish","format-standard","hentry","category-c","tag-exceltodatagridview","excerpt"],"_links":{"self":[{"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=\/wp\/v2\/posts\/196","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=196"}],"version-history":[{"count":1,"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=\/wp\/v2\/posts\/196\/revisions"}],"predecessor-version":[{"id":198,"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=\/wp\/v2\/posts\/196\/revisions\/198"}],"wp:attachment":[{"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=196"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.cuneytbayrak.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}