En iyi yanıtlayıcılar
Visual Studio ile Excel'den istediğim veriyi textboxlara yazdırma

Soru
-
Merhaba,
Elimde bir Excel dosyam var 4 sayfadan oluşan şifreli bir dosya. Visual Studio ile bir masaüstü uygulaması geliştirip bu excel dosyasına giriş yapılmasına gerek kalmaksızın textboxlara veri çekmek istiyorum.
Örneğin 1. textboxta "4" yazıcam ve sonrasında excel dosyasının 1.sayfasındaki A sütununda bu 4 değerini bulup yanında istediğim sütunda bulunan diğer değerleri de bu formdaki diğer textboxlara yazdırmak istiyorum.
Buna benzer bir program yaptım ancak visual basic kodları ile aşağıda verdim. Sizden istediğim şeyler;
1- Excel dosyasında 1. sayfayı seçtirmeyi sağlamak.
2- Excel dosyam şifreli salt okunur olarak açabilmeyi sağlamak.
3- Bu yazılan programı nasıl .exe olarak işleyebilirim.
Şimdiden çok teşekkürler eğer Visual Basic kodları ile devam et derseniz Visual Basic kodlarına da açığım yoksa C# olursa benim için o da uygundur.
Yazdığım Visual Basic kodları;
Imports Excel = Microsoft.Office.Interop Public Class Form1 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Dim k As String Dim xls As Excel.Excel.Application Dim workbook As Excel.Excel.Workbook xls = New Excel.Excel.Application workbook = xls.Workbooks.Open(OpenFileDialog1.FileName) xls.Visible = True k = TextBox1.Text For i = 7 To 50 If xls.Cells(i, 4).value = k Then TextBox2.Text = xls.Cells(i, 5).value TextBox3.Text = xls.Cells(i, 8).value TextBox4.Text = xls.Cells(i, 21).value TextBox5.Text = xls.Cells(i, 13).value TextBox6.Text = xls.Cells(i, 12).value End If Next xls.Quit() xls = Nothing End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim xls As Excel.Excel.Application xls = New Excel.Excel.Application OpenFileDialog1.ShowDialog() Label7.Text = "Dosya Konumu Seçilmiştir..." End Sub End Class
Yanıtlar
-
Tabii ki C# varken, VB ile devam et demeyiz :)
private void FillInfoFromExcel() { var filename = GetExcelFile(); var xls = new Excel.Application(); var workbook = xls.Workbooks.Open(filename,ReadOnly:true,Password:"secretPassword"); //xls.Visible = true; Quit var sonda var ws = (Excel.Worksheet)workbook.Worksheets[1]; var k = TextBox1.Text; var range = ws.Range[ws.Cells[7,1],ws.Cells[50,1]]; // A sutunu demistin // A sutunu 7-50.satirlar arasında arıyoruz var firstFound = range.Find(k); if (firstFound != null) { var row = firstFound.Row; TextBox2.Text = ((Excel.Range)ws.Cells[row, 5]).Value.ToString(); TextBox3.Text = ((Excel.Range)ws.Cells[row, 8]).Value.ToString(); TextBox4.Text = ((Excel.Range)ws.Cells[row, 21]).Value.ToString(); TextBox5.Text = ((Excel.Range)ws.Cells[row, 13]).Value.ToString(); TextBox6.Text = ((Excel.Range)ws.Cells[row, 12]).Value.ToString(); } xls.Quit(); } private string GetExcelFile() { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Excel dosyalari (*.xls,*.xlsx)|*.xls;*.xlsx|Tum dosyalar (*.*)|*.*"; ofd.ShowDialog(); return ofd.FileName; }
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.
Tüm Yanıtlar
-
Tabii ki C# varken, VB ile devam et demeyiz :)
private void FillInfoFromExcel() { var filename = GetExcelFile(); var xls = new Excel.Application(); var workbook = xls.Workbooks.Open(filename,ReadOnly:true,Password:"secretPassword"); //xls.Visible = true; Quit var sonda var ws = (Excel.Worksheet)workbook.Worksheets[1]; var k = TextBox1.Text; var range = ws.Range[ws.Cells[7,1],ws.Cells[50,1]]; // A sutunu demistin // A sutunu 7-50.satirlar arasında arıyoruz var firstFound = range.Find(k); if (firstFound != null) { var row = firstFound.Row; TextBox2.Text = ((Excel.Range)ws.Cells[row, 5]).Value.ToString(); TextBox3.Text = ((Excel.Range)ws.Cells[row, 8]).Value.ToString(); TextBox4.Text = ((Excel.Range)ws.Cells[row, 21]).Value.ToString(); TextBox5.Text = ((Excel.Range)ws.Cells[row, 13]).Value.ToString(); TextBox6.Text = ((Excel.Range)ws.Cells[row, 12]).Value.ToString(); } xls.Quit(); } private string GetExcelFile() { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "Excel dosyalari (*.xls,*.xlsx)|*.xls;*.xlsx|Tum dosyalar (*.*)|*.*"; ofd.ShowDialog(); return ofd.FileName; }
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
Merhaba yanıtınız için çok teşekkür ederim. Verdiğiniz kodları visual studio'ya aktarmaya çalışıyorum ancak kodda bulunan Excel ve Textbox kelimelerinin altı kırmızı kaldı. Microsoft Excel 16.0 Object Library başvurusunu ekledim ama sonuç aynı. Using kısımlarına eklemem gereken birşeyler mi var acaba?
-
En basit seylere takilmissiniz :( Onları bildiginizi sanmiştim.
using Excel=Microsoft.Office.Interop.Excel;
Textbox'larin altini çizmesi benim sucum degil, sizin kodunuza gore o isimlerde nesneleriniz vardi, ben de aynen koydum. Dogru isimleri neyse onları kullanın. Altı kirmizi çizilen bir şey oldugunda, hatayı okumak icin mouse'u o çizginin uzerine getirip çıkan mesajı okumanız gerektiğini de bilmiyorsunuz sanırım :(
Bu arada neden öyle textBox1, textBox2 ... gibi VS'nun verdigi isimleri kullanıyorsunuz. Onları anlasilir isimlerle değiştirsenize. Ornegin: txtAdet, txtAd, txtSoyad ... yani ne oldukları isimlerinden de anlasilsin. Yoksa kod yazarken o 1, 2, ... ne neydi hep ezberlemeniz, tekrar tekrar kontrol etmeniz gerekebilir.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
Tekrar merhaba Çetin Bey. Yanıtınız için tekrar çok teşekkür ederim. Sanırım yanlış cümle kurmuşum sizi kırdıysam kusura bakmayın. Tabiki de sizin hatanız değil altı kırmızı kalması benim c# bilmememden kaynaklı. Dosyayı çevirmek istememin sebebi de hem c#öğrenmeye çalışıyorum hemde programın daha hızlı çalışabilmesi için gerekli bir dilmiş kendisi. Kusura bakmayın tekrar.
Hatalar çözülmüştür Çetin Bey'e çok teşekkür ederim.