Skip to main content

AccessTr.neT


Epplus İle excel Word Dosyası Oluşturma ve Veri Ekleme

Epplus İle excel Word Dosyası Oluşturma ve Veri Ekleme

#1
epplus.dll i projeme refere ettim. Bundan sonra yapmak istediğim şudur

Bir Excel dosyası oluşturmak ve ilgili alanlara veri girmek.

Bununla ilgili basit bir örnek verebilirmisiniz.

Teşekkürler...
drummers, 11-05-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#2
Benim kendi projemde kullandığım metodu ekledim. Ben Excelden okuyup, okuduğumu veritabanına kaydediyorum:
Kod:
Private Sub ExceldenBilgileriAl()
    Using p As New ExcelPackage()
        If Not String.IsNullOrEmpty(fileDialog.FileName) Then
            Dim kacinciSatir As Byte = 1
            ' Excelden alınan bilginin kaçıncı satırdan başladığını takip etmek için kullandığımız değişken
            Using oku As New FileStream(fileDialog.FileName, FileMode.Open)
                p.Load(oku)
                Dim ws As ExcelWorksheet = p.Workbook.Worksheets(1)

                ' Form üzerinden değişken değerini alıyoruz. Kaçıncı satırdan itibaren bilgiler balıyor.
                kacinciSatir = Convert.ToByte(seKacinciSatir.EditValue)

                Dim exceldeSonSatir As Integer = ws.Dimension.[End].Row

                ' Sütunlardaki değerleri parametreye girelim
                Try
                    Dim ogrenciSql As String = "INSERT INTO ogrenciler (DonemId,KimlikNo,OgrenciNo,Ad,Soyad,Cinsiyet,VeliCep1,VeliCep2,VeliCep3,OkulKodu,OkulAdi,DanismanKodu,DanismanAdi,SinifKodu,DogumGunu) VALUES (@did,@kimno,@ogrno,@ad,@soyad,@cins,@veli1,@veli2,@veli3,@okulkodu,@okuladi,@danismankodu,@danismanadi,@sinifkodu,@dogum)"

                    cnn = New MySqlConnection(VT.BaglantiCumlesi)
                    Dim cmd As MySqlCommand

                    If cnn.State = ConnectionState.Closed OrElse cnn.State = ConnectionState.Broken Then
                        cnn.Open()
                    End If

                    cmd = New MySqlCommand(ogrenciSql, cnn)

                    For i As Integer = kacinciSatir To exceldeSonSatir
                        cmd.Parameters.AddWithValue("@did", lueDonemler.EditValue)
                        cmd.Parameters.AddWithValue("@kimno", ws.Cells(i, 1).Value)
                        cmd.Parameters.AddWithValue("@ogrno", ws.Cells(i, 2).Value)
                        cmd.Parameters.AddWithValue("@ad", ws.Cells(i, 3).Value)
                        cmd.Parameters.AddWithValue("@soyad", ws.Cells(i, 4).Value)
                        cmd.Parameters.AddWithValue("@cins", ws.Cells(i, 5).Value)
                        cmd.Parameters.AddWithValue("@veli1", ws.Cells(i, 6).Value)
                        cmd.Parameters.AddWithValue("@veli2", ws.Cells(i, 7).Value)
                        cmd.Parameters.AddWithValue("@veli3", ws.Cells(i, 8).Value)
                        cmd.Parameters.AddWithValue("@danismankodu", ws.Cells(i, 9).Value)
                        cmd.Parameters.AddWithValue("@danismanadi", ws.Cells(i, 10).Value)
                        cmd.Parameters.AddWithValue("@okulkodu", ws.Cells(i, 11).Value)
                        cmd.Parameters.AddWithValue("@okuladi", ws.Cells(i, 12).Value)
                        cmd.Parameters.AddWithValue("@sinifkodu", ws.Cells(i, 13).Value)
                        cmd.Parameters.AddWithValue("@dogum", ws.Cells(i, 14).Value)

                        cmd.ExecuteNonQuery()
                        cmd.Parameters.Clear()
                    Next

                    SonSayfaMesajiYaz()
                Catch ex As MySqlException
                    lg.LogEkle("frmOgrenciler", "ExceldenBilgileriAl", ex.Message, ex.Number, Ortak.Kullanici.KullaniciId)
                    MessageBox.Show(ex.Message + Environment.NewLine + Environment.NewLine + ex.Number)
                Finally
                    cnn.Close()
                    cnn.Dispose()
                End Try
                ' FileStream oku döngüsü bitti
            End Using
            ' dosya adı boşmu bitti
        End If
    End Using
    ' ExcelPackage
End Sub

C# kodlarını çevirici programlar ile VB.Net'e çevirdim hata olurmu bilemiyorum. Excel'e yazdırdığım kısmı bulamadım ancak şu siteden esinlenmiştim:

Alıntı:zeeshanumardotnet.blogspot.com.tr/2011/06/creating-reports-in-excel-2007-using.html
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
#3

Dim FilePath As String = "C:\Deneme.xlsx"
Dim destination_file As New FileInfo(FilePath)
Try
destination_file.Delete()
Catch ex As Exception
End Try


Dim Yeni As New FileInfo(FilePath)
Dim Dosya As New ExcelPackage(Yeni)
Dim Sayfa As ExcelWorksheet = Dosya.Workbook.Worksheets.Add("Deneme")

Sayfa.Cells.Style.Font.Size = 11

Sayfa.Cells.Style.Font.Name = "Calibri"

Sayfa.Column(1).Width = 10
Sayfa.Column(2).Width = 30
Sayfa.Column(3).Width = 10
Sayfa.Column(4).Width = 10
Sayfa.Column(5).Width = 12

Sayfa.Column(3).Style.HorizontalAlignment = ExcelHorizontalAlignment.Right
Sayfa.Column(4).Style.HorizontalAlignment = ExcelHorizontalAlignment.Right
Sayfa.Column(5).Style.HorizontalAlignment = ExcelHorizontalAlignment.Right

Sayfa.Column(4).Style.Numberformat.Format = "###,###,##0.00;[RED](-###,###,##0.00)"
Sayfa.Column(5).Style.Numberformat.Format = "###,###,##0.00%;[RED](-###,###,##0.00%)"

Sayfa.Cells(1, 1).Value = "Ali"
Sayfa.Cells(3, 1).Value = "Velİ"
Sayfa.Cells(3, 2).Value = "Hasan"
Sayfa.Cells(3, 3).Value = "Mehmet"
Sayfa.Cells(3, 4).Value = "Kerim"
Sayfa.Cells(3, 5).Value = "%...."

Sayfa.Cells(1, 1).Style.Font.Bold = True
Sayfa.Cells(3, 1).Style.Font.Bold = True
Sayfa.Cells(3, 2).Style.Font.Bold = True
Sayfa.Cells(3, 3).Style.Font.Bold = True
Sayfa.Cells(3, 4).Style.Font.Bold = True
Sayfa.Cells(3, 5).Style.Font.Bold = True


Dosya.Save()

Bu şekilde oluşturdum. Fakat şunu yapmak istiyorum.

- Dim FilePath As String = "C:\Deneme.xlsx" burdaki dosyayı değilde yeniden bir dosya oluştursun

- Ekleme işlemi bitince doyayı ekrana açsın
Teşekkürler
drummers, 11-05-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla
#4
Alıntı:Dim FilePath As String = "C:\Deneme.xlsx" burdaki dosyayı değilde yeniden bir dosya oluştursun

Net bir bilgi vermemişsiniz. Yeni bir dosya derken her defasında farklı bir dosyamı oluşturulacak?

Eğer bu şekilde istiyorsanız Deneme ismi yerine tarih-saat şeklinde bir isim verirsiniz DateTime kullanarak.

İsim aynı ancak her Excel'e göndermede önceki içerik mi silinecek?

Bu şekilde istiyorsanız File.Delete ile öncekini silebilirsiniz.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
#5
(17/10/2014, 00:43)alpeki99 yazdı:
Alıntı:Dim FilePath As String = "C:\Deneme.xlsx" burdaki dosyayı değilde yeniden bir dosya oluştursun

Net bir bilgi vermemişsiniz. Yeni bir dosya derken her defasında farklı bir dosyamı oluşturulacak?

Eğer bu şekilde istiyorsanız Deneme ismi yerine tarih-saat şeklinde bir isim verirsiniz DateTime kullanarak.

İsim aynı ancak her Excel'e göndermede önceki içerik mi silinecek?

Bu şekilde istiyorsanız File.Delete ile öncekini silebilirsiniz.

Teşekkürler...
drummers, 11-05-2009 tarihinden beri AccessTr.neT üyesidir.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task