Horstiii Geschrieben 17. September 2009 Geschrieben 17. September 2009 Hallo alle zusammen...... ich bin gerade dabei einen Shop zu entwickeln. Die Produkte wollte ich aus einem Excel Dokument auslesn und in eine Datenbank schreiben lassen. Hoffe hier kann mir jemand helfen Dieses Snippet habe ich dazu gefunden: C# - Excel mit COM Interop auslesen Nur leider bekomme ich die Excel dll nicht referenziert Ich habe kein Excel installiert, nur OpenOffice, hoffe das macht nix aus. Danke schonmal im Vorraus grüße
TDM Geschrieben 17. September 2009 Geschrieben 17. September 2009 Ich habe kein Excel installiert, nur OpenOffice, hoffe das macht nix aus. Doch, denn du musst ja eine Excel-Application aufmachen...
HJST1979 Geschrieben 17. September 2009 Geschrieben 17. September 2009 Hallo einzige Möglichkeit wäre wenn du aus Excel- Datei eine CSV- Datei erstellst und dann die CSV einliest. Gruß Hans-Jörg
Horstiii Geschrieben 17. September 2009 Autor Geschrieben 17. September 2009 Habe es auf anderem Wege hinbekommen, auch ohne Excel. Danke
Horstiii Geschrieben 18. September 2009 Autor Geschrieben 18. September 2009 string filename = MapPath("Tabelle.xls"); string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + filename + ";Extended Properties=Excel 8.0;"; //You must use the $ after the object you reference in the spreadsheet OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Tabelle1$]", strConn); DataSet myDataSet = new DataSet(); myCommand.Fill(myDataSet, "ExcelInfo"); GridView1.DataSource = myDataSet.Tables["ExcelInfo"].DefaultView; GridView1.DataBind(); Ich lade das Excel Sheet mit einem DataAdapter in ein DataSet zum testen habe ich das ganze mal in ein GridView geladen. Wird auch alles korrekt angezeigt, jetzz muss ich das ganze nur in meine SQL Datenbank bekommen........ wer weiß wie? Bitte hilfe..... grüße
Gateway_man Geschrieben 18. September 2009 Geschrieben 18. September 2009 Eine Lösung (jedoch nicht die elleganteste): datatable dt = new datatable(); dt = my.dataset.table(0); int counter; For (counter = 0; counter == dt.rows.count; counter ++){ 'jenachdem wieviele Columns du hast string rowitem1 = dt.rows(counter)("Columnname").tostring; 'das für die ganze Zeile machen und dann in der schleife ein Insert INTO Command schreiben mit den Strings als Values...... } Sofern Fehler drin sein sollten tut es mir leid, ich benutzte nur C# sogut wie überhauptnicht und dementsprechend sind auch meine syntaxkentnisse . Lg Gateway
HJST1979 Geschrieben 18. September 2009 Geschrieben 18. September 2009 Wird auch alles korrekt angezeigt, jetzz muss ich das ganze nur in meine SQL Datenbank bekommen........ wer weiß wie? Bitte hilfe..... Da kann ich dir einen Tipp geben: --> Alle Codes sind VB.NET da ich in C# net so fit bin Du kannst auch einen SQL- Reader definieren Dim Reader As OleDb.OleDbDataReader Dann kannst den Reader füllen und durchlaufen Reader = myCommand.ExecuteReader While Reader.Read() End While Mit nachfolgendem Code kannst dann auf die Items zugreifen stWert = reader.Item(inItem) stINSERTSQL zusammen bauen und absetzen. Hoffe konnte dir helfen, das Dataset brauchste dann nicht mehr Gruß Hans-Jörg
TDM Geschrieben 18. September 2009 Geschrieben 18. September 2009 OleDB-Abfragen gehen auch ohne installiertes Excel :confused: *notier*
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden