Как я читаю привязки данных для Excel ListObject

У меня есть приложение Excel 2010 Excel 2007. У меня есть ListObject, связанный с источником данных объекта через источник привязки. Я хочу, чтобы определить, какое свойство моего объекта имеет любой объект ListColumn в моей коллекции ListColumns ListObject. В приведенном ниже примере я использую имя столбца, чтобы найти столбец, привязанный к свойству «Field1». Однако в моей ситуации имя столбца может отличаться от имени свойства. В объекте ListColumn нет DataMember, DataPropertyName или подобного свойства, как определить, какой столбец связан с каким свойством?

Учитывая класс и ListObject ниже, я хочу, чтобы иметь возможность использовать следующий код:

return FindColumn(MyDataListObject, "Property1") Public Class MyData Public Property Field1 As String Public Property Field2 As Date End Class Public Function FindColumn(ByVal listObject As ListObject, ByVal propertyName As String) As ListColumn For Each col As ListColumn In listObject.ListColumns If col.Name = propertyName Then Return col End If Next Return Nothing End Function 

У меня похожая ситуация, и мне нужны диаграммы, связанные с столбцами в Excel.

К сожалению, VSTO скрывает поля, в которых хранится информация.

Единственный способ получить доступ к этой информации с помощью System.Reflection.

Ниже приведен небольшой пример:

  public static string[] GetListObjectMappedColumns(ListObject listObject) { Tools.ListObject vstoListObject = Globals.Factory.GetVstoObject(listObject); FieldInfo fieldInfo = vstoListObject.GetType().GetField("mappedProperties", BindingFlags.Instance | BindingFlags.NonPublic); object value = fieldInfo.GetValue(vstoListObject); if (value is PropertyDescriptor[]) { List<string> result = new List<string>(); foreach (PropertyDescriptor propertyDescriptor in (PropertyDescriptor[])value) result.Add(propertyDescriptor.Name); return result.ToArray(); } return null; } 

Я надеюсь помочь вам!

Teobaldo

  • как читать pivottable excel с помощью c #?
  • Запись в ячейку включает ScreenUpdating в моей надстройке VSTO
  • Почему Application.get_Caller (Type.Missing) возвращает отрицательное целое число?
  • Преобразование Word.InlineShape в Excel.Workbook c #
  • Почему моя надстройка Excel работает только наполовину?
  • Надстройка Excel Установка и настройка .Net security / trust
  • Асинхронный вызов inprocess COM-DLL из VSTO Excel Addin?
  • VSTO Запуск EXCEL в коде ADDIN NOT LOADED
  • Добавить столбец в объект VSTO ListObject с существующим источником данных?
  • Автоматизация таблицы (Office 2013) от приложения .NET или надстройки VSTO
  • Вкладка VSTO Excel
  • Давайте будем гением компьютера.