Asagıdaki uygulamada sabit diskte kayıtlı bir Excel belgesini okuyup içerigini Listview ile gösterecegiz. Temel baglantı islemlerini ve mantıgını gördükten sonra bu projeyi gelistirip daha kullanıslı uygulamalar yazabilirsiniz.
Önce sadece bir adet çalısma sayfasına sahip ve bizim için önemli 3 tane sütuna sahip bir Excel belgesi olusturalım.
Açılan penceredeki COM sekmesinden Microsof Excel 11.0 Object Library bilesenini seçip OK dedigimizde projemizin bin klasörü altına Inteop.Excel.dll ve Interop.Microsoft.Office.Core.dll adlı dll dosyalarının geldigini göreceksiniz.
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 blogu yazalım.
Kod: Tümünü seç
public Form1()
{
InitializeComponent();
ExcelNesnesi = new Excel.Application();
if (ExcelNesnesi == null)
{
MessageBox.Show("Problem! Dosya Açılamadı.");
System.Windows.Forms.Application.Exit();
}Form üzerindeki butonun click olayına belgenin açılması ve verilerin okunması için gerekli kodu yazalım.
Kod: Tümünü seç
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));
}
}
}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 su anda sadece dosya ismi alım digerlerine Type.Missing yazarak bos 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ıgımız için açtıgımız excel belgesinin çalısma sayfaları arasından sadece 1.çalısma sayfasını aldık.
Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);
Yine kısa bir örnek yaptıgı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ıs olduk.
Bu arada myvalues dizisini yazdıgımız ConvertToStringArray yöntemi yardımıyla strArray adlı string dizisine dönüstürdük.
Kod: Tümünü seç
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 bilesenimize de bu string dizisini ekledik. Ekranda verilerimiz göründü. Tabiki bu sekilde string dizisi olarak verileri elde ettikten sonra ihtiyacımız dogrultusunda her türlü kullanabiliriz.
hzr =spectacuLar.






