Я пытаюсь добавить пользовательские свойства в книгу, которую я создал программно. У меня есть метод для получения и настройки свойств, но проблема заключается в том, что рабочая книга возвращает null для свойства CustomDocumentProperties. Я не могу понять, как инициализировать это свойство, чтобы я мог добавлять и извлекать свойства из книги. Microsoft.Office.Core.DocumentProperties является интерфейсом, так что я не могу пойти и сделать следующийПрограммный доступ к свойствам пользовательского документа Excel
if(workbook.CustomDocumentProperties == null)
workbook.CustomDocumentProperties = new DocumentProperties;
Вот код, я должен получить и установить свойство:
private object GetDocumentProperty(string propertyName, MsoDocProperties type)
{
object returnVal = null;
Microsoft.Office.Core.DocumentProperties properties;
properties = (Microsoft.Office.Core.DocumentProperties)workBk.CustomDocumentProperties;
foreach (Microsoft.Office.Core.DocumentProperty property in properties)
{
if (property.Name == propertyName && property.Type == type)
{
returnVal = property.Value;
}
DisposeComObject(property);
}
DisposeComObject(properties);
return returnVal;
}
protected void SetDocumentProperty(string propertyName, string propertyValue)
{
DocumentProperties properties;
properties = workBk.CustomDocumentProperties as DocumentProperties;
bool propertyExists = false;
foreach (DocumentProperty prop in properties)
{
if (prop.Name == propertyName)
{
prop.Value = propertyValue;
propertyExists = true;
}
DisposeComObject(prop);
if(propertyExists) break;
}
if (!propertyExists)
{
properties.Add(propertyName, false, MsoDocProperties.msoPropertyTypeString, propertyValue, Type.Missing);
}
DisposeComObject(propertyExists);
}
Линию свойство = workBk.CustomDocumentProperties как DocumentProperties; всегда задает свойства null.
Это использование Microsoft.Office.Core v12.0.0.0 и Microsoft.Office.Interop.Excell v12.0.0.0 (Office 2007)
Именно ссылки я нашел, и я отправил свой код в то время как вы отправляете это. +1 и принята для вас :-) –
Обновить ссылку на "почему": https://support.microsoft.com/en-us/kb/303296 –