Tweet

Ana Sayfa   Forum   C#.NET
Yeni Başlık Cevap Ekle
white_bullet EXCEL ile C# arasındaki bağlantı (10/09/2008 10:30)
profil
 offline OFFLINE
 New Coder

Merhabalar;
İstediğim şey....C# daki forma eklemiş olduğum TextBoxların içine veri girildiğinde o verileri Excel e kayıt etsin ve aynı şekilde Exceldeki bir sütundaki satırları C# daki forma eklemiş olduğum Comboboxlara aktarsın....

Bu konuda bana yardım ederseniz sevinirim..... :)

Üye Profili

white_bullet Re:EXCEL ile C (10/09/2008 11:22)
profil Oguzz
 offline OFFLINE
 Senior Coder

Öncelikle konuyu iki kere açtığınızı belirtmek istiyorum.Örnekle açıklayayım bildiğim kadarını.

3 tane sütuna sahip bir Excel belgesi oluşturun,
Daha sonra windows projesi olştrn,Toolboxtan projenin üzerine bir Listview, bir Buttun ve bir OpenFileDialog sürükle,
Solution Explorer penceresinde Refences üzerine sağ tıklayarak Add Reference (Referans Ekle) seç,
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öreceksin,

excell nesnesini oluştur;

CODE:

private Excel.Application ExcelNesnesi = null;


Açılmama ihtimaline karşı kontrol yapalım,

CODE:
public Form1()

{

InitializeComponent();

ExcelNesnesi = new Excel.Application();



if (ExcelNesnesi == null)

{

MessageBox.Show("Hata! Dosya Açılamadı.");

System.Windows.Forms.Application.Exit();

Form üzerindeki butonun click olayına belgenin açılması ve verilerin okunması için gerekli kodu yaz;

CODE:
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.

CODE:
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.



CODE:
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ü.

kolay gelsin..

just code it!

profil

white_bullet Re:EXCEL ile C# arasındaki bağlantı (24/09/2008 07:50)
profil
 offline OFFLINE
 New Coder

Merhabalar;

Ben daha yeniyim.
Anladığım kadarıyla Excel deki bilgiyi Listview a aktardınız..

Benim asıl istediğim ise;

Listview daki veriler eğer aynı ise üstüne toplasın değilse altına yazsın ve bu verilerin hepsini Excel ' e aktarsın.

Bu konuda yardımcı olabilirsen çokkkk sevinirim :)

profil

white_bullet Re:EXCEL ile C# arasındaki bağlantı (02/10/2008 08:47)
profil seyhan
 offline OFFLINE
 Junior Coder

Oğuz paylaşım harika klavyene sağlık ustad...

Saygılar.
Seyhan

[IMG SRC="http://img225.imageshack.us/img225/2408/seyhanzt2.jpg" ALIGN="oğuz"]seyhan[/IMG]

profil
 
1 /
 
Ana Sayfa   Forum   C#.NET
Yeni Başlık Cevap Ekle
 

MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg