Turkhackteam.net/org - Turkish Hacking & Security Platform...  
Geri git   Turkhackteam.net/org - Turkish Hacking & Security Platform... >
Information Technology’s
> Program Bölümü

Program Bölümü Her türlü Tam Sürüm, Demo, Trial Program Linklerini Burada Bulabilirsiniz ...


C# İle Excelden Verİ Okumak

Program Bölümü

Yeni Konu aç Cevapla
 
Seçenekler Stil
Alt 07-02-2008   #1
  • Offline
  • Özel Üye
  • Genel Bilgiler
Üyelik tarihi
Aug 2007
Nerden
İstanbul
Yaş
25
Mesajlar
Konular
Ettiği Teşekkür
54
153 Mesajına
720Teşekkür Aldı
  
C# İle Excelden Verİ Okumak



C# İLE EXCELDEN VERİ OKUMAK

Word, Excel gibi COM yeteneği olan uygulamalara C# ile ulaşmak ve işlem yapmak mümkündür.

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 **** 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 http://www.csharpturk.net/forum/forum_posts.asp?TID=15 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.

Yararlı olması dileklerimle, bir başka makalede görüşmek üzere hoşçakalın.



Facebook sayfamızı beğenin.
    



__________________
T-G3N3R4LS
|___________•___________|

.


_____________________________________________
Offline  
Alıntı ile Cevapla
Alt 10-09-2008   #2
  • Offline
  • Asteğmen
  • Genel Bilgiler
Üyelik tarihi
Sep 2008
Mesajlar
1
Konular
0
Ettiği Teşekkür
0
0 Mesajına
0Teşekkür Aldı
  


Kardeş Ben Baya Uğraşdım fakar Olmadı acaba sana ulşabilecem bi adresin var mı :_?



Facebook sayfamızı beğenin.
    
Offline  
Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler
Stil

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı


Bilgilendirme Turkhackteam.net/org
Sitemizde yer alan konular üyelerimiz tarafından açılmaktadır.
Bu konular yönetimimiz tarafından takip edilsede gözden kaçabilen telif hakkı olan veya mahkeme kararı çıkmış konular sitemizde bulunabilir. Bu tür konuları bize turkhackteamiletisim[at]gmail.com adresine mail atarak bildirdiğiniz takdirde en kısa sürede konular hakkında gerekli işlemler yapılacaktır.
Please Report Abuse, Harassment, Scamming, Warez, Crack, Divx, Mp3 or any Illegal Activity to turkhackteamiletisim[at]gmail.com


Hiçbir zafer amaç değildir. Zafer, ancak kendisinden daha büyük bir amacı elde etmek için belli başlı bir vasıtadır. (M.KEMAL ATATÜRK)




Powered by vBulletin® Copyright ©2000 - 2013
Tema Desteği: www.tr-vBulletin.com



Search Engine Friendly URLs by vBSEO 3.6.0 ©2011, Crawlability, Inc.