2012-03-29 12 views
0

Ich habe ein Excel-Arbeitsmappe, die mehrere Arbeitsblätter enthält. Die Tabellen in den Arbeitsblättern wurden mit dem Namen-Manager in Excel benannt. Gibt es eine Möglichkeit, eine Liste dieser Tabellennamen anstelle der Arbeitsblattnamen zu erhalten?Auflistung der zugewiesenen Tabellennamen in Arbeitsmappe mit Excel-Interop

Zum Beispiel, wo Arbeitsmappe als Microsoft.Office.Interop.Excel.Workbook definiert:

var names = (workbook.Names as System.Collections.IEnumerable).Cast<Name>(); 

gibt eine Liste der definierten Namen in der Arbeitsmappe reicht. Zusätzlich:

var worksheets = workbook.Worksheets.Cast<Worksheet>(); 

gibt eine Liste von Arbeitsblättern in der Arbeitsmappe, deren Namen sind die gleichen wie die Registerkarte Namen der Arbeitsblätter.

Keine der beiden Listen die Tabellen nach ihren zugewiesenen Namen. Sie listen die Tabellen nur nach ihrem Arbeitsblattnamen auf. Ich hoffe, ich habe die Frage klar genug formuliert, kann aber bei Bedarf ein Beispiel geben.

Antwort

2

Aus historischen Gründen werden Tabellen in Excel im OM als Listen bezeichnet.

Was Sie suchen, sind ListObjects auf einem Worksheet. An ein ListObject ist ein Range-Objekt angehängt, mit dem Sie den Namen herausfinden können. DisplayName kann auch den Namen zurückgeben - ich bin mir nicht sicher.

Verwandte Themen