В настоящее время я кеширую информацию для формул на листах в моем дополнении. Когда на листе есть изменения, они фиксируются, так что кэш обновляется. Я видел, что нет надежного способа определить, когда меняется имя листа, поэтому я проделал некоторую работу, чтобы посмотреть, что изменилось при добавлении, перемещении вкладок и т. Д.
Создавая свою книгу в файле .zip и просматривая workbook.xml, я обнаружил следующую структуру:
<sheets>
<sheet r:id="rId1" sheetId="2" name="POC2"/>
<sheet r:id="rId2" sheetId="1" name="POC1"/>
</sheets>
Есть ли что-то, чего мне не хватает, или этот подход кажется надежным?
Кажется, что sheetId доступен, и на него не влияют изменение порядка вкладок и другие операции. Я думаю, что я могу использовать этот внутренний идентификатор вместе с именем листа. Если имя листа имеет имя, отличное от имени в кэше, это будет означать, что лист был переименован. Если sheetId больше не существует, лист был удален и т. Д.
У меня вопрос: есть ли в VSTO способ завладеть атрибутом sheetId, если мои другие идеи верны?
Спасибо
Lee