Tja - wie löscht man den eine Reihe (ROW) in Excel?
ODBC fällt flach, da kann man nicht löschen.
Also vieleicht Excel API?
using Excel = Microsoft.Office.Interop.Excel{
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open(MeinExcel.xlsx);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
Excel.Range me = xlWorkSheet.get_Range("A", "A");
me.Delete(Excel.XlDirection.xlToLeft);
}
Klappt nich. Ich hab schon andere Lösungen probiert seitere aber regelmässig an dem Problem das mir die gesammtzahl der Einträge nicht bekannt ist. Ja sicher: in meinem Beispiel kann ich nachzählen, aber es soll ja nachher mit JEDEM belibigen Excel funktioniert.
Ich will mich hier nicht auf die Excel API versteiffen. Falls jemand eine andere Libary kennt, dann nur her damit 😃
Hi,
"klappt nicht" ist immer eine ungeschickte Fehlerbeschreibung.
Was denn nicht?
Grundsätzlich kann ich dir empfehlen:
Excel verfügt über eine Makro-Aufzeichnungsfunktion in den Entwickleroptionen.
Zeichne auf - mit Alt+F11 kannst du dir den generierten Code anschauen und auf C# anpassen...
LG
PS: Wenn du die Spalte "A" auswählst - aber eine Reihe löschen willst - hast du irgendwas am Code nicht richtig.
PPS: So findet man die letzte Zeile und/oder Spalte (ACHTUNG - nimm den Code unter "Notbremse"):
http://www.excel-ist-sexy.de/letzte-zeile-oder-spalte/
Eh ja - eine spalte natürlich 😃 Ich habs schon wieder verwechselt.
Geht nicht meint - Die Spalte ist einfach immer noch da 😃 Kein fehler, keine Exception gar nicht. Der Code geht durch wie geöhlt, aber die Spalte ist immernoch da.
Allerdings hab ich jetzt herausgefunden wie es geht.....
xlWorkSheet.Rows[1].Delete(Excel.XlDirection.xlToLeft);
Zu dumm nur, dass ich eine Collumn, und keine ROW löschen wollte 😄
Sowas lässt sich ganz einfach rausfinden in dem man in Excel die Makroaufnahme startet, die gewünschte Aktion ausführt (z. B. eine Zeile löschen), die Makroaufnahme wieder stoppt und sich dann den VBA-Code anschaut.
Allerdings hab ich jetzt herausgefunden wie es geht.....
xlWorkSheet.Rows[1].Delete(Excel.XlDirection.xlToLeft);
Zu dumm nur, dass ich eine Collumn, und keine ROW löschen wollte 😄
Kannst du den Code nicht einfach auf eine Column ummünzen? Alá
xlWorkSheet.Columns[1].Delete(...);
=)
Fehlt da nicht noch das Speichern des Excel-Dokuments? 🤔