gpt4 book ai didi

c# - 以编程方式访问 Excel 自定义文档属性

转载 作者:可可西里 更新时间:2023-11-01 08:02:18 24 4
gpt4 key购买 nike

我正在尝试将自定义属性添加到我以编程方式创建的工作簿中。我有一个获取和设置属性的方法,但问题是工作簿为 CustomDocumentProperties 属性返回 null。我不知道如何初始化此属性,以便我可以在工作簿中添加和检索属性。 Microsoft.Office.Core.DocumentProperties 是一个接口(interface),所以我不能去执行以下操作

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);

}

线 properties = workBk.CustomDocumentProperties 作为 DocumentProperties;始终将属性设置为 null。

这是使用 Microsoft.Office.Core v12.0.0.0 和 Microsoft.Office.Interop.Excel v12.0.0.0 (Office 2007)

最佳答案

如果您的目标是 .NET 4.0,则可以使用 dynamic 关键字进行后期绑定(bind)

 Document doc = GetActiveDocument();
if ( doc != null )
{
dynamic properties = doc.CustomDocumentProperties;
foreach (dynamic p in properties)
{
Console.WriteLine( p.Name + " " + p.Value);
}
}

关于c# - 以编程方式访问 Excel 自定义文档属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1137763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com