Ich arbeite an vsto Anwendung, ich habe eine offene Arbeitsmappe. Ich möchte ausgewählte Blattdaten aus dieser Arbeitsmappe lesen, ohne eine oledb-Verbindung zu verwenden. Gibt es eine Möglichkeit, die Daten zu lesen und in der Datentabelle zu speichern.So erhalten Sie ausgewählte Excel-Tabelle Daten ohne Oledb-Verbindung in C#
Antwort
Der schwierige Teil ist herauszufinden, ob die aktuelle Auswahl für das, was Sie tun möchten, gültig ist. In der VBA-Welt von Excel würden Sie mit der VBA-Informationsfunktion TypeName arbeiten, um zu bestimmen, ob die aktuelle Auswahl ein Range-Objekt ist. C# hat kein direktes Äquivalent, Sie müssen also umgehen. Wenn Sie nur an einem Bereich interessiert sind, können Sie überprüfen, ob eine direkte Konvertierung in einen Excel-Bereich gültig ist und von dort aus fortfahren. Ein Range-Objekt gibt ein Array zurück, das Sie in einen Datensatz einfügen können.
Das folgende Codebeispiel zeigt, wie Sie die Auswahl testen und mit dem resultierenden Array arbeiten. Es macht nichts mit einem Datensatz - das wäre eine andere Frage.
Eine Alternative zur Verwendung des Cast-Tests ist die Arbeit mit den COM-APIs. Wenn Sie je nach Art der Auswahl verschiedene Maßnahmen ergreifen müssen, ist dieser Ansatz möglicherweise effektiver. Es ist hier beschrieben: https://www.add-in-express.com/creating-addins-blog/2011/12/20/type-name-system-comobject/
Danke Cindy, will nur wissen, Auswahl-Eigenschaft ist, was ich aus Excel jetzt aktuelle Excel-Daten auswählen? –
Der Code, den ich Ihnen zeige, nimmt die aktuelle Auswahl in der Excel-Anwendung auf - egal, was es ist. Es prüft dann, ob die aktuelle Auswahl ein Bereich von Zellen ist. Ist dies der Fall, wird dieser Bereich einem Array zugewiesen, mit dem Sie dann arbeiten können. Warum probierst du es nicht aus? –
- 1. So erhalten Sie ausgewählte Zeilen mit Hibernate
- 2. So erhalten Sie nur ausgewählte Verzeichnisnamen
- 3. So erhalten Sie Daten zwischen zwei Daten in C#
- 4. So erhalten Sie rowSums für ausgewählte Spalten in R
- 5. So erhalten Sie ausgewählte Zeilen in vb6 Datagrid
- 6. So erhalten Sie ausgewählte Elemente in einer Checkliste
- 7. Swift - So erhalten Sie Zahlenwerte für ausgewählte Zeilen in UITableview
- 8. So erhalten Sie ausgewählte Zeilen von Checkcolumn in einem Raster
- 9. So erhalten Sie ausgewählte Artikel aus Spinner in Android
- 10. So erhalten Sie HttpRequestMessage-Daten
- 11. So erhalten Sie ausgewählte Wert von Dropdown-Liste in mvc C#
- 12. Chosen erhalten mehrere ausgewählte Werte ohne jquery
- 13. So erhalten Sie Daten vom _GET_ORDERS_DATA_ Berichtstyp über C# code
- 14. So erhalten Sie POST-Daten als Array mit C#
- 15. So erhalten Sie Daten einer Spalte eines Blattes durch C#
- 16. So erhalten Sie ausgewählte ID- und Textwerte mit selectize.js. Meteor?
- 17. So erhalten Sie ausgewählte Artikel aus multiLine Listview
- 18. So erhalten Sie die ausgewählte Zeile von einem TreeView
- 19. So erhalten Sie die ausgewählte Aktivität im neu gehosteten WorkflowDesigner
- 20. So erhalten Sie ausgewählte Artikelposition von Spinner mit SimpleAdapter
- 21. So erhalten Sie ausgewählte Zelle oder Bereich in Excel-Dokument mit OpenXML-Bibliothek und C#
- 22. Wie erhalten Sie ausgewählte Zeilen in DataGrip?
- 23. Erhalten Sie ausgewählte Zeilen in JTable
- 24. So speichern Sie ausgewählte Elemente in Pref
- 25. So erhalten Sie den Eingangstyp ohne Wertattribut
- 26. So erhalten Sie Daten von URL
- 27. Erhalten Sie ausgewählte Elemente aus Kombinationsfeld
- 28. So erhalten Sie Daten von Parse.com Datenbank
- 29. PHP So erhalten Sie Werte von Daten
- 30. So erhalten Sie mehrere ausgewählte Werte aus der Listbox C# Windows-Anwendung
Haben Sie in Microsoft.Office.Interop.Excel – JaredStroeb
ja geschaut, ich habe aktuelle ausgewählte Blatt Referenz. –
Welche Art von "vsto-Anwendung": eine Arbeitsmappen-Anpassung oder ein Add-In? –