Мне нужен способ вставить (или использовать уже реализованное свойство, которое может служить) уникальным идентификатором в экземпляр Microsoft.Office.Interop.Excel.ListObject
.
Проблема в том, что когда я создаю новый ListObject как:
var excelTable = worksheet.ListObjects.Add(ExcelInterop.XlListObjectSourceType.xlSrcExternal, DUMMY_CONNECTIONSTRING, false, true, cellRange);
Я не могу полагаться на свойство Name
excelTable
чтобы просмотреть его в коллекции, так как пользователь мог изменить значение этого свойства в любое время после этого.
После просмотра свойств объекта я не нашел ничего, что можно было бы использовать из коробки (например, как свойство тега, которое существует в объекте типа Microsoft.Office.Tools.Excel.ListObject
, который я не могу использовать в этой точке из-за зависимостей)... и другие странные вещи, такие как DisplayName
которые отображаются не только не могут быть установлены напрямую, но также отражать то же самое значение, которое имеет свойство Name
всегда (почему вы хотите иметь 2 свойства, которые отражают то же значение в в любой момент?).
Я подумал о том, чтобы создать собственную реализацию этого класса или, возможно, использовать свойство Comment
для хранения GUID (который я не знаю, почему это кажется неправильным):
excelTable.Comment = Guid.NewGuid().ToString();
Можете ли вы предложить другой способ выполнить эту задачу? Большое спасибо!
Очень сложно сказать, что нет свойства "Тег" (или аналогичного), которое вы могли бы установить на объектах Excel. Я сталкиваюсь с теми же проблемами, что и вы. Вот два варианта, которые вы можете использовать: