|
VB.Net-Forum - Beitragsübersicht - |
|
Thema | V03: Speichern, schließen Excel |
Von |
vb.NET |
Datum |
01. September 2016 um 17:40:27 |
Frage |
Hallo,
ich habe ein Code, mit dem ich beim Starten der App Daten aus einer Excel DAtei in ein DataGridView übertrage. Dazu muss die Datei aber leider geöffnet sein. Ich öffne sie mit Process.Start.
Wie speichere und schließe ich sie wieder?
Habe das hier versucht, mit der Meldung - unzulässig:
'Dim processId As IntPtr 'Dim excelProcess As Process = Process.GetProcessById(processId.ToInt32()) 'excelProcess.Kill()
'Dim owrite As New Microsoft.Office.Interop.Excel.Workbook
'owrite.SaveAs("E:\ConnectionExcel\ExcelBinding\Test.csv")
Hab auch versucht xlApp und Workbook zu deklarieren um zum schluss zu sagen myWorkbook Save() und myWorkbook.Close(), bekomme aber gleich eine Fehlermeldung in der Zeile: 'Dim xlApp As Object = CreateObject("Microsoft.Office.Interop.Excel.Application")
Hier mein Code:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Dim xlApp As Object = CreateObject("Excel.Application") ''xlApp.Visible = False 'Dim myWorkbook As Object = xlApp.Workbooks.Open("E:\ConnectionExcel\ExcelBinding\Nombre.xlsx")
Process.Start("E:\ConnectionExcel\ExcelBinding\Test.csv")
Dim MyConnection As System.Data.OleDb.OleDbConnection Dim DtSet As System.Data.DataSet Dim MyCommand As System.Data.OleDb.OleDbDataAdapter MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='E:\ConnectionExcel\ExcelBinding\Test.csv';Extended Properties=Excel 8.0;") MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Test$]", MyConnection) MyCommand.TableMappings.Add("Table", "Net-informations.com") DtSet = New System.Data.DataSet MyCommand.Fill(DtSet) dgvCityDetails.DataSource = DtSet.Tables(0) MyConnection.Close()
End Sub
Danke euch! |
|
Antwort: |
Von |
Nico |
E-Mail |
nico.schertler@studentpartners.de |
Datum |
01. September 2016 um 17:54:11 |
Antwort |
Hallo,
in deinem Code sind drei verschiedene Ansätze. Der erste über CreateObject und Workbook.Open(). Damit scheinst du nichts mehr zu machen. Der zweite über Process.Start(). Dessen Sinn erschließt sich mir nicht ganz. Und der letzte über ADO.Net. Für letzteren Fall sollte es möglich sein, über ein SQL Query (INSERT INTO Tabelle ...) Daten hinzuzufügen. Ich bin mir aber nicht sicher, ob das mit CSV-Dateien funktioniert oder nur mit XLS Dateien. Weitere Informationen hier. Aber bist du dir sicher, dass du Excel als Datenspeicher verwenden willst? Sofern die Datenhaltung keinen externen Anforderungen genügen muss, ist es die vermutlich schlechteste Idee, Excel als Datenbank zu verwenden. Das Lesen und Schreiben von CSV-Dateien ist ohne Excel wahrscheinlich einfacher und schneller.
Nico
|
|
[ Antwort schreiben | Zurück zum VB.Net-Forum | Forum-Hilfe ] |
|
Letzte Aktualisierung: Sonntag, 13. Dezember 2015 |
|