webmaster
 
›
Cevapla
17-12-2011 22:55:23
 

C# ile excelden veri okumak

Aşağıdaki uygulamada sabit diskte kayıtlı bir Excel belgesini okuyup içeriğini Listview ile göstereceğiz. Temel bağlantı işlemlerini ve mantığını gördükten sonra bu projeyi geliştirip daha kullanışlı uygulamalar yazabilirsiniz.

Önce sadece bir adet çalışma sayfasına sahip ve bizim için önemli 3 tane sütuna sahip bir Excel belgesi oluşturalım.



Visual Studio 2005 ile bir Windows projesi oluşturalım.



Toolboxtan projemiz üzerine bir Listview, bir Buttun ve bir OpenFileDialog sürükleyelim. Formun görünümü aşağıdaki gibi olacaktır.



Şimdi Solution Explorer penceresinde Refences üzerine sağ tıklayarak Add Reference (Referans Ekle) seçelim.




Açılan penceredeki COM sekmesinden Microsof Excel 11.0 Object Library bileşenini seçip OK dediğimizde projemizin bin klasörü altına Inteop.Excel.dll ve Interop.Microsoft.Office.Core.dll adlı dll dosyalarının geldiğini göreceksiniz.



Şimdi artık Excel nesnemizi oluşturalım.

private Excel.Application ExcelNesnesi = null;

Excel açıldı ve formumuzun yapıcısında Excel Application referansı alındı. Excel açılmaz ya da problem olursa diye bir kontrol bloğu yazalım.

public Form1()
{
InitializeComponent();
ExcelNesnesi = new Excel.Application();

if (ExcelNesnesi == null)
{
MessageBox.Show("Problem! Dosya Açılamadı.");
System.Windows.Forms.Application.Exit();
}
Şimdi Excel belgesi açıldı ve veri okuma işlemi yapabiliriz.

Form üzerindeki butonun click olayına belgenin açılması ve verilerin okunması için gerekli kodu yazalım.

private void button1_Click(object sender, EventArgs e)
{
this.openFileDialog1.FileName = "*.xls";
if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
Excel.Workbook theWorkbook =
ExcelNesnesi.Workbooks.Open(
openFileDialog1.FileName,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing);


Excel.Sheets sheets = theWorkbook.Worksheets;

Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);

for (int i = 1; i <= 10; i++)
{
Excel.Range range =
worksheet.get_Range("A" + i.ToString(), "C" + i.ToString());
System.Array myvalues = (System.Array)range.Cells.Value2;
string[] strArray = ConvertToStringArray(myvalues);
listView1.Items.Add(new ListViewItem(strArray));
}
}
}

openFileDialog1 ile xls uzantılı bir belge aldık. Daha sonra bir Excel Workbook oluşturarak Excel belgemizi açıp bu nesneye transfer ettik.

ExcelNesnesi.Workbooks.Open yöntemi parametre olarak sadece dosya ismini almaz. Object Borwser ile incelerseniz dosya ismi ile birlikte 15 tane parametre alır ama bize şu anda sadece dosya ismi alım diğerlerine Type.Missing yazarak boş bıraktık. 15 parametremizi de yönteme geçtik.

Workbook nesnemiz içerisindeki sheetleri sheets nesnesine transfer ettik.

worksheet adlı nesnemize de kısa bir örnek uygulama yaptığımız için açtığımız excel belgesinin çalışma sayfaları arasından sadece 1.çalışma sayfasını aldık.

Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);

Yine kısa bir örnek yaptığımız için A, B ve C sütunlarından 10 tane satır okuduk.

myvalues adlı bir diziye 10X3 lük bir matris kadar veriyi almış olduk.

Bu arada myvalues dizisini yazdığımız ConvertToStringArray yöntemi yardımıyla strArray adlı string dizisine dönüştürdük.

string[] ConvertToStringArray(System.Array values)
{
string[] theArray = new string[values.Length];
for (int i = 1; i <= values.Length; i++)
{
if (values.GetValue(1, i) == null)
theArray[i - 1] = "";
else
theArray[i - 1] = (string)values.GetValue(1, i).ToString();
}

return theArray;
}


Listview1 bileşenimize de bu string dizisini ekledik. Ekranda verilerimiz göründü. Tabiki bu şekilde string dizisi olarak verileri elde ettikten sonra ihtiyacımız doğrultusunda her türlü kullanabiliriz.




Biz örnek olması açısından Listview bileşeninde görüntüledik. İster gride aktarsınız, ister veritabanına yazarsınız ister grafik çizersiniz. Artık geliştirmek size kalmış.

Bu makale ilgili soru ve önerilerinizi C#Türk Forumda urlsi altında sorabilirsiniz. Bu makalede kullandığımız örnek uygulama C#Türk Download bölümünde mevcuttur.

Sizler de bu örnek uygulamayı baz alarak geliştirdiğiniz uygulamalarınızı bize ulaştırırsanız diğer C# programcıları ile paylaşmak için sitemize ekleriz.
....NOT:Tamamı Alıntıdır....

Bir önceki yazı C++ a Giriş hakkında bilgi vermektedir.

Cevapla

"C# ile excelden veri okumak" konusu hakkında etiketler
acmadan aktarim aktarimi aktarma aktarmak alma almak array asp atma baglantisi bir bos ceken cekerken cekme click converttostringarray csharp degistirmek dizi diziye dokuman dosyalama dosyasi dosyasindan dosyasini ekleme excel excelaktarma exceldata exceldeki excelden excele excelkayit excell excelveri excstviewe form formdan forms gelmesi gondermek gorsel goruntuleme ile islemleri kayit kayitli kod kodlari kullanabiliriz kullanimi kullanma link listview mail mailleri microsoft missing mysql office oku okuma okumak okumuyor okutmak okuyup olarak olusturma on1 open openfiledialog ornek ornekleri programi proje projemizde range sayfa sayfasi sayfasini sharp sheet sifreli string stvi sutundan tabani tabanina tabanindan type uygulama uzerindeki veri verileri verilerini verisini veritabanina windows worksheet xls

C++ a Giriş Önceki | Sonraki C# ile Paralel Port Kullanımı




Saat: 12:40 - Webmaster Forumu - Rss - Arşiv
İletişim Bilgileri, Contact Us, Kullanım Sözleşmesi, Gizlilik