Tôi đang cố gắng thêm thuộc tính tùy chỉnh vào sổ làm việc mà tôi đã tạo theo chương trình. Tôi có một phương thức để nhận và thiết lập các thuộc tính, nhưng vấn đề là sổ làm việc trả về null cho thuộc tính CustomDocumentProperties. Tôi không thể tìm ra cách khởi tạo thuộc tính này để tôi có thể thêm và lấy các thuộc tính từ sổ làm việc. Microsoft.Office.Core.DocumentProperties là một giao diện, vì vậy tôi không thể đi và làm như sauTruy cập các thuộc tính tài liệu tùy chỉnh Excel theo lập trình
if(workbook.CustomDocumentProperties == null)
workbook.CustomDocumentProperties = new DocumentProperties;
Đây là mã tôi phải có được và thiết lập các thuộc tính:
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);
}
Dòng tính = workBk.CustomDocumentProperties dưới dạng DocumentProperties; luôn đặt thuộc tính thành rỗng.
này được sử dụng Microsoft.Office.Core v12.0.0.0 và Microsoft.Office.Interop.Excell v12.0.0.0 (Office 2007)
Chính xác liên kết tôi tìm thấy và tôi đã đăng mã của tôi khi bạn đăng bài này. +1 và được chấp nhận cho bạn :-) –
Cập nhật để liên kết về "lý do": https://support.microsoft.com/en-us/kb/303296 –