У меня есть проект, который имеет два требования. Один из них — создать простую программу, которая добавляет пользовательское свойство в электронную таблицу Excel из-за пределов Excel. Второе требование заключается в поиске и, если найдено, извлечении этого пользовательского свойства из надстройки уровня приложения или надстройки Excel.
Пока я выполнил первое требование и имею программу, которая добавляет некоторые данные в CustomFileProperties книги через OpenXML следующим образом:
using (var wb = SpreadsheetDocument.Open(WorkbookToRegister, true))
{
Log("Finding existing properties...");
var customPropsPart = wb.CustomFilePropertiesPart;
if (customPropsPart == null)
{
Log("No properties found, adding new part...");
customPropsPart = wb.AddCustomFilePropertiesPart();
}
var props = customPropsPart.Properties;
if (props == null)
{
props = new DocumentFormat.OpenXml.CustomProperties.Properties();
customPropsPart.Properties = props;
}
foreach (var prop in props.Where(
prop => ((CustomDocumentProperty)prop).Name.Value == "niuVersionNumber"))
{
Log("Removing existing properties...");
prop.Remove();
}
Log("Adding new properties,..");
var versionProp = new CustomDocumentProperty();
versionProp.FormatId = Guid.NewGuid().ToString("B");
propertyGuid = versionProp.FormatId;
versionProp.Name = "niuVersionNumber";
propertyName = versionProp.Name;
versionProp.VTBString = new VTBString(versionNumber);
props.AppendChild(versionProp);
var pid = 2;
Log("Assigning IDs to properties,..");
foreach (var item in props.Cast<CustomDocumentProperty>())
{
item.PropertyId = pid++;
}
Log("Saving...");
props.Save();
}
Как видите, код добавляет в файл свойство с именем "niuVersionNumber" со значением versionNumber. Это работает безупречно.
Проблема во втором требовании. Я не смог понять, как получить доступ к этому пользовательскому свойству из VSTO API.
Я искал в MSDN и в Интернете и знаю документацию по API OpenXML и VSTO, но мне трудно полностью понять, как заставить это работать.
Любые предложения или примеры будут оценены!
С уважением,
Джо