Bu yazımızda C# ile csv dosyası okuma ve csv dosyasındaki verileri DataGridView‘ de görüntüleme işleminin nasıl yapılabileceğini gösteren bir örnek oluşturacağız.
Örnekte denemea amaçlı olarak farklı formatlarda rastgele veri üreten sitelerden birinde csv dosyası oluşturmayı tercih ettim. Dosyanın içeriği Türkçe olmasa da kullanımı aynı şekilde olacaktır.
Örnekte kullandığım csv dosyasının bir kısmı ve deneme amaçlı kullanmak isterseniz indirme linki aşağıdadır.
Örneğimize Form tasarımını yaparak başlayalım.
Formumuza birer adet textBox, Button, dataGridView ve openFileDialog ekliyoruz.
Programımızın kodlarını ve çalışmasını kısaca açıklayalım.
Button’ a basıldığı zaman openFileDialog nesnesi açılacak ve csv dosyamızı seçebileceğimiz dialog penceresi açılacaktır. Buradan csv dosyamızı seçerek Tamam dediğimizde VeriCek isimli metoda gönderilen dosya içindeki veriler dataGridView içine aktarılacaktır.
Örneğimizde virgülle “,” ayrılmış csv dosyalarını kullanmaktayız. Kodlarda ilgili bölümü değiştirerek farklı türdeki csv dosyalarını da açabilirsiniz.
C# Kodlarımız:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace csvtodatagrid { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnOpen_Click(object sender, EventArgs e) { openFileDialog1.ShowDialog(); txtFile.Text = openFileDialog1.FileName; VeriCek(txtFile.Text); } private void VeriCek(string filePath) { DataTable dt = new DataTable(); string[] satirlar = System.IO.File.ReadAllLines(filePath); if(satirlar.Length>0) { //ilk satır başlık satırımız string ilkSatir = satirlar[0]; string[] basliklar = ilkSatir.Split(','); foreach(string baslik in basliklar) { dt.Columns.Add(new DataColumn(baslik)); } //Veriler için kodlarımız for(int i=1;i<satirlar.Length;i++) { string[] veriler = satirlar[i].Split(','); DataRow dr = dt.NewRow(); int columnIndex = 0; foreach(string veri in basliklar) { dr[veri] = veriler[columnIndex++]; } dt.Rows.Add(dr); } } if(dt.Rows.Count>0) { dataGridView1.DataSource = dt; } } } } |
Ekran Çıktısı:
Hocam merhaba..form1 de kaydettiğim veriler … form2 de bulunan data datagridview de listelensin istiyorum.Bunun ile ilgili ders bulamadım yardımcı olurmusunuz.İyi Günler dilerim
okunan satırlardaki kayıtlardaki boşlukları nasıl temizlerim
türkçe karakterleri anlamadığı için deişk karater ile yazıyor napmalıyım
File.ReadAllLines(DosyaYolu, Encoding.GetEncoding(“windows-1254”)) gönder gitsin 🙂