Excel Tablosundaki Verileri ListBox ta Göstermek
Merhaba arkadaşlar bu makalemizde Excel tablosundaki verileri listbox ta göstereceğiz.
Microsoft artık excelden veri çekimiyle ilgili desteğini çekiyor. Eğer uygulamanızda Microsoft.Ace.Oledb.16.0 sağlayıcısı yerel makine kayıtlı değil hatası alırsanız, Microsoft sitesinden Microsoft Access Database Engine 2016 Redistributable indirebilirsiniz.
Ben bu uygulama için yukarıdaki linkten 32 bitlik olan sürümünü indirdim. Siz isterseniz 64 bitlik sürümünü de indirebilirsiniz. Bu sürümün normal kurulumunu yapamazsanız, komut satırını admin yetkilisiyle açarak kurulumu bilgisayarınıza yapabilirsiniz. Dosyanızın bulunduğu yolu yazmanız gerekecektir.
Örneğin;
komut satırına aşağıdaki gibi yazıp kurulumu yapınız.
D:\ AccessDatabaseEngine.exe /quiet
Şekil 1
Şekil 2
Form1.cs
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;
using System.Data.OleDb;
namespace excel_listbox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<int> id = new List<int>();
List<string> author = new List<string>();
List<string> book = new List<string>();
List<int> price = new List<int>();
OleDbConnection con;
OleDbCommand cmd;
OleDbDataReader dr;
private void Form1_Load(object sender, EventArgs e)
{
}
private void btnGetData_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
con = new OleDbConnection(@"Provider = Microsoft.ACE.OLEDB.16.0; Data Source = D:\book.xlsx; Extended Properties ='Excel 12.0 xml; HDR = YES; '");
cmd = new OleDbCommand("SELECT * FROM [Sheet1$] Where Author='" + textBox1.Text + "'", con);
con.Open();
dr = cmd.ExecuteReader();
while (dr.Read())
{
id.Add(Convert.ToInt32(dr["Id"]));
author.Add(dr["Author"].ToString());
book.Add(dr["Book"].ToString());
price.Add(Convert.ToInt32(dr["Price"]));
}
con.Close();
foreach (var bookId in id)
{
listBox1.Items.Add(bookId);
}
foreach (var Author in author)
{
listBox2.Items.Add(Author);
}
foreach (var Book in book)
{
listBox3.Items.Add(Book);
}
foreach (var Price in price)
{
listBox4.Items.Add(Price);
}
}
}
}
Bir makalenin daha sonuna geldik. Bir sonraki makalede görüşmek üzere. Bahadır ŞAHİN