Laden...

Updaten in Excel

Letzter Beitrag vor 17 Jahren 6 Posts 1.761 Views
Updaten in Excel

Hallo,

sry, dass ich heute einen Fragenflash habe. Nur leider komme ich ohne eure Hilfe keinen Deut weiter. Will einzelne Zellen in einem Excel Datenblatt aktualisieren.
Benutze dazu (zB) folgenden Code:


cmd2.CommandText = "UPDATE [Ergebnisse$A1:A1] SET F1 = 11"

Der wird ohne zu meckern geschluckt. Nur leider ändert sich an der Tabelle überhaupt garnix;-(

Was mach ich falsch?

Gruß

Spaltenüberschriften

Der OLEDB-Treiber sucht nach Spaltenüberschriften, nicht nach Zellen-Koordinaten.

Die erste Zeile des angegebenen Bereichs muss die Spaltennamen als Zelleninhalte enthalten. Angaben wie F1 oder A12 spielen keine Rolle.

Hi Rainbird,

kannst du mir vielleicht ein kurzes Programmbeispiel schicken, wie ich folgenden Code abschließen muss, damit er alle Änderungen im Excel Sheet übernimmt? Das wäre echt klasse.


            DataTable DB_Ergebnisse = new DataTable("ExcelData");

            cmd.CommandText = "SELECT * FROM [Ergebnisse$]";
            da.SelectCommand = cmd;
            da.Fill(DB_Ergebnisse);


            for (cIndex = 1; cIndex <= Anzahl_Stützstellen; cIndex++)
            {
                DB_Ergebnisse.NewRow();
                DB_Ergebnisse.Rows[cIndex + 1][1] = Verlustintervall * cIndex;
                DB_Ergebnisse.Rows[cIndex + 1][2] = Verteilung_Verlust_ohne[cIndex];

                DB_Ergebnisse.Rows[cIndex + 1][4] = Ertragsintervall * cIndex;
                DB_Ergebnisse.Rows[cIndex + 1][5] = Verteilung_Ertrag_ohne[cIndex];
            }



Wie sehen nun die zwei-drei Zeilen aus um die Inhalte des DataAdapters auf das Sheet zurückzuschreiben?

Gruß

Und ausserdem kann weder ODBC noch OleDb eine Excel Tabelle Updaten.

Es geht nur Select und Insert!

Automation-Addin oder Interop.Excel

An Deiner Stelle würde ich entweder das Spreadsheet mit Microsoft.Office.Interop.Excel oder mit einem COM Automation-Addin bearbeiten.
Wenn Du das Addin schreibst, dann musst Du einmal die Datenbank-Abfrage absetzen und das Ergebnis cachen und in der Formel die jeweilige Zeile referenzieren - das hat auch den gewissen Charme, daß der Enduser einfach nur F9 drücken muss, um die Abfrage neu zu starten anstatt ein eigenes Programm zu erstellen.
Für das Erstellen eines solchen Addins ist der folgende Link sehr gut:
http://blogs.msdn.com/eric_carter/archive/2004/12/01/273127.aspx.

Stimmt so nicht

Original von FZelle
Und ausserdem kann weder ODBC noch OleDb eine Excel Tabelle Updaten.

Es geht nur Select und Insert!

Schau:

http://support.microsoft.com/kb/316934/EN-US/