C# CSV Dosyası Okuma ve DataGridView’ de Gösterme

sdkbyrm

olwα.ɴeт
Üyelik Tarihi
23 Aralık 2020
Mesajlar
813
Beğeniler
1
Puanı
3
Ticaret: 0 / 0 / 0
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.

Örnek csv Dosyasını İndir





Ö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.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ı:

 
Üst Alt