vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
NPOI erstellt excel falsch 
Autor: lesat
Datum: 05.03.15 11:50

Hallo zusammen,

und zwar verzweifle ich gerade an NPOI. Ich will mit NPOI ein Excel befüllen bzw. erstellen und habe das Problem das immer nur die letzte Spalte gefüllt wird. Habe schon einiges versucht und mir auch andere Projekte in der Firma angesehen die mit NPOI arbeiten die machen das genau so wie ich (nur halt eben komplexer). Habe auch die Kollegen um Rat gefragt die sich mit NPOI besser auskennen und die wissen auch keinen Rat. Sobald ich eine Spalte aus dem Datatable lösche schreibt er mir die zuvor vorletzte Spalte in das Excel. An den For-Schleifen kanns nicht liegen da hab ich auch schon alles erdenklich ausprobiert. Genauso habe ich die einzelnen Zellen ausgelesen im Objekt testsheet sind die Daten definitiv vorhanden, nur eben im Excel nicht. Problem besteht nur mit NPOI-Versionen 2.xxx oder höher. Mit älteren funktionierts, bei denen wiederrum andere Dinge fehlen, also umstieg auf ne ältere Verion kommt nicht in Frage.

Hoffe ihr könnt mir helfen.

Hier noch das Ergebnis was in Excel bei rauskommt: http://www.bilderhost.eu/display-i9330bcybwr.html

Imports System.IO
Imports NPOI.XSSF.UserModel
Imports NPOI.HPSF
Imports NPOI.XSSF.Util
Imports NPOI.POIFS.FileSystem
Imports System.Data.Common
Imports System.Data.SqlClient
Imports System.Windows.Forms
Imports NPOI.SS.UserModel
Imports NPOI.SS
Imports System.Text.RegularExpressions
 
Public Class Form1
 
    Dim testtable As New DataTable
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
      Handles Button1.Click
 
        Dim rownumber As Integer = 3
        Dim column As Integer = 0
 
        Dim oExcelworkbook As IWorkbook = New XSSFWorkbook(New FileStream( _
          My.Settings.Templatexls, FileMode.Open, FileAccess.Read))
 
        Dim oFontLarge As XSSFFont = oExcelworkbook.CreateFont()
        oFontLarge.FontName = "Arial"
        oFontLarge.FontHeightInPoints = 10
        'oFontLarge.Color = 13
 
        Dim testStyle As XSSFCellStyle
        testStyle = oExcelworkbook.CreateCellStyle()
        testStyle.SetFont(oFontLarge)
 
        Dim testsheet As XSSFSheet = oExcelworkbook.GetSheet("Testblatt")
 
        For Each row As DataRow In testtable.Rows
 
            testsheet.CreateRow(rownumber).CreateCell(0).SetCellValue(row( _
              0).ToString)
 
            For Each col As DataColumn In testtable.Columns
 
                testsheet.CreateRow(rownumber).CreateCell(column).SetCellValue( _
                  row(column).ToString)
                testsheet.GetRow(rownumber).GetCell(column).CellStyle = _
                testStyle
                column += 1
            Next
            column = 0
            rownumber += 1
        Next
 
        testsheet.CreateRow(rownumber + 2).CreateCell(column).SetCellType( _
          NPOI.SS.UserModel.CellType.Formula)
        testsheet.GetRow(rownumber + 2).GetCell(column).SetCellFormula("SUM(" & _
        "A3:" & "A6)")
        testsheet.CreateRow(rownumber + 2).CreateCell(column + 1).SetCellValue( _
        "test1")
        testsheet.CreateRow(rownumber + 2).CreateCell(column + 2).SetCellValue( _
        "test2")
 
        Dim savefiledialog1 As New SaveFileDialog()
 
        savefiledialog1.DefaultExt = "xlsx"
        savefiledialog1.Filter = "xlsx|*.xlsx"
        savefiledialog1.Title = "Save Excel File"
 
        Dim result As DialogResult = savefiledialog1.ShowDialog()
 
        If (result = DialogResult.OK) Then
 
            Dim oFileStream As FileStream = System.IO.File.Create( _
              savefiledialog1.FileName)
            oExcelworkbook.Write(oFileStream)
            oFileStream.Close()
 
 
        Else
            MsgBox("Speichervorgang abgebrochen")
        End If
 
 
 
    End Sub
 
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) _
      Handles MyBase.Load
 
 
        testtable.Columns.Add("Alter")
        testtable.Columns.Add("Name")
        testtable.Columns.Add("wohnort")
        testtable.Columns.Add("Beschreibung")
 
        testtable.Rows.Add("34", "Torsten", "Bluebanana", "idm")
        testtable.Rows.Add("42", "Michael", "hohes Ross", "Chef")
        testtable.Rows.Add("32", "Patrick", "Busbahnhof", "DVD")
        testtable.Rows.Add("31", "Sebasitan", "Olymp", "Arschkarte")
        testtable.Rows.Add("52", "Berthold", "Chefsessel", "Profi")
 
        DataGridView1.DataSource = testtable
        DataGridView1.AutoGenerateColumns = True
 
    End Sub
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
NPOI erstellt excel falsch1.683lesat05.03.15 11:50
Re: NPOI erstellt excel falsch1.067lesat05.03.15 12:41
Re: NPOI erstellt excel falsch1.001ModeratorDaveS05.03.15 13:02

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel