| |

VB.NET - Ein- und UmsteigerXLSX lesen ja, schreiben nein... | |  | Autor: Tommi467 | Datum: 26.02.14 11:39 |
| Hallo zusammen,
ich habe hier ein Tool, das auf XLS-Dateien zugreift, die von anderen Programmen generiert werden.
Die Daten werden in ein Gridview geladen und können nach einer Änderung auch gespeichert werden.
Soweit alles ok.
Jetzt kommt es aber vor, das Dateien von Sachbearbeitern nachbearbeitet/überarbeitet werden und dann im XLSX-Format abgespeichert werden.
Um diese XLSX-Dateien zu laden (habe ich inzwischen nachgelesen), muss die Connection geändert werden.
Ich überprüfe deshalb den ausgewählten Dateinamen ob xls oder xlsx und richte Connection dann entweder
CnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & XLS_Datei & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=0"""
oder
CnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & XLS_Datei & ";Extended Properties=Excel 12.0;Mode=Share Deny Write;"
ein.
Soweit alles ok. Funktioniert prima!.
Problem entsteht jetzt beim speichern.
Die evtl. Änderungen im Gridview müssen in der BESTEHENDEN Datei übernommen werden.
Bedingung ist, dass ich NICHT auf das jeweils installierte Office aufsetzen kann, da die verwendeten Versionen unterschiedlich sind (2000 - 2010).
Hier im Forum bekam ich dann den Tipp die unten gelistete Funktion zu nutzen. Die funktioniert auch einwandfrei. Aber jetzt leider eben nicht mehr für XLSX.
Was kann ich tun? Wie kann ich eine vorhandene XLSX mit Daten aus einem Gridview aktualisieren?
Bin für jeden nützlichen Tipp dankbar.
Gruß Tommi
Sub Excel_Daten_speichern(ByVal TabellenName As String)
Dim WhereFilter As String = "WHERE "
Dim SetField As String = "SET "
Dim UpdateString As String = "UPDATE [" & TabellenName & "$] "
Dim Merker1 As String = ""
Dim Merker2 As String = ""
SetField = Replace(SetField, "SET ,", "SET ")
UpdateString = UpdateString & SetField & WhereFilter
Try
If objAdapter.UpdateCommand Is Nothing Then
Dim objCommand As New OleDb.OleDbCommand(UpdateString, _
objConnection)
For I = 0 To DataGridView1.Columns.Count - 1
objCommand.Parameters.Add(DataGridView1.Columns( _
I).Name, OleDbType.Char, 255).SourceColumn = _
DataGridView1.Columns(I).Name
Next
objAdapter.UpdateCommand = objCommand
End If
objAdapter.Update(objDataSet)
Catch ex As Exception
MsgBox(ex.ToString())
End Try
End Sub |  |
 XLSX lesen ja, schreiben nein... | 2.668 | Tommi467 | 26.02.14 11:39 |   Re: XLSX lesen ja, schreiben nein... | 1.870 | FZelle | 26.02.14 12:55 |    Re: XLSX lesen ja, schreiben nein... | 1.880 | Tommi467 | 26.02.14 13:19 |     Re: XLSX lesen ja, schreiben nein... | 1.904 | FZelle | 27.02.14 10:36 |      Re: XLSX lesen ja, schreiben nein... | 2.069 | Tommi467 | 27.02.14 12:02 |       Re: XLSX lesen ja, schreiben nein... | 1.917 | Franki | 28.02.14 00:43 |        Re: XLSX lesen ja, schreiben nein... | 1.859 | Tommi467 | 28.02.14 06:57 |         Re: XLSX lesen ja, schreiben nein... | 2.028 | Christoph1972 | 28.02.14 07:03 |          Re: XLSX lesen ja, schreiben nein... | 1.856 | Tommi467 | 28.02.14 10:39 |           Re: XLSX lesen ja, schreiben nein... | 1.830 | Christoph1972 | 28.02.14 16:45 |         Re: XLSX lesen ja, schreiben nein... | 1.816 | FZelle | 28.02.14 09:24 |          Re: XLSX lesen ja, schreiben nein... | 1.993 | Tommi467 | 28.02.14 09:48 |           Re: XLSX lesen ja, schreiben nein... | 1.851 | FZelle | 28.02.14 19:32 |
 | 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 |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevPopUp 2.0 
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere Infos
|
|
|
Copyright ©2000-2025 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
|
|