AccessTr.neT

Tam Versiyon: Epplus İle excel Word Dosyası Oluşturma ve Veri Ekleme
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
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...
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

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
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.
(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...