Excel Get_Range mit mehreren Bereichen
Ich versuche, einen Bereich aus Excel, die mehrere Bereiche angegeben, im wesentlichen die ich habe...
int StartColumn
int EndColumn
int[] ColumnsToSkip
Wenn Sie diese kombinieren es ist möglich, produzieren eine Reihe mit nicht zusammenhängenden Bereichen. Leider kann ich nicht ganz verstehen, den Anruf zu bekommen... dieses MSDN ist nicht sehr nützlich...
Arbeitsblatt Blatt;
sheet.get_Range( what goes in here??? );
Jemand helfen? Cheers.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine sehr einfache Lösung ist, um anzugeben, die verschiedene Bereiche in Komma-separierte form:
Sich für die programmatische Reihe von Kombinationen gibt, gibt es auch die
Union
undIntersection
Methoden der ExcelApplication-Objekt. Diese sind ein bisschen ungeschickt, zu verwenden in C# wegen der vielen optionalen Parametern. Hier sehenhttp://codeidol.com/csharp/c-sharp-in-office/Working-with-Excel-Objects/Working-with-the-Range-Object/
Beispiele.
EDIT: einige zusätzliche Hinweise:
In Ihrem Fall, Sie sollten zuerst zu transformieren, die "ColumnsToSkip" in "ColumnsToKeep", denn das ist, was Sie brauchen, um jede Art von Zelle union. Hier ist eine Linq Lösung:
Dann können Sie etwas entlang der Linien von diesem Beispiel:
wo "Union" ist definiert, zum Beispiel so:
Einen anderen Weg zur Arbeit mit nicht zusammenhängenden Bereichen ist es, einfach verbinden Sie zusammen in Excel mit einem benannten Bereich, z.B.:
=CHOOSE({1;2;3},RANGE1,RANGE2,RANGE3)
Daraus wird ein array bestehend aus den Bereichen "gestapelt" übereinander. Weisen Sie diese Formel, um einen benannten Bereich, und Sie können es verwenden, programmgesteuert genau wie jede andere
Range
Objekt.