How do I add custom properties to a Word doc with

2019-02-17 21:53发布

问题:

Using .NET 4, how do I add custom properties to a document?

I'm assuming it goes something like this:

WordApp // an instance of Microsoft.Office.Interop.Word.Application
  .ActiveDocument
  .CustomDocumentProperties
  .Add...?

I cannot seem to find documentation for this that applies to .NET4/interops v14.

回答1:

It took a lot of guessing (much more than 12 minutes worth, I'm embarrassed to say!) to figure this out:

WordApp // an instance of Microsoft.Office.Interop.Word.Application
  .ActiveDocument
  .CustomDocumentProperties
  .Add(Name: "PropertyName", 
       LinkToContent: false, 
       Type: 4, 
       Value: "PropertyValue");

I couldn't find a decent enum for the types, so I dug the magic number "4" out of a forum post for string and it works...

For casual browsers, this was tricky because CustomDocumentProperties is dynamic, so I get no Intellisense. And for some reason, I cannot find docs on this.



回答2:

The magic number 4 isn't that magic. Here is the enum you can use: (part of microsoft.office.core)

public enum MsoDocProperties
{
    msoPropertyTypeNumber = 1,
    msoPropertyTypeBoolean = 2,
    msoPropertyTypeDate = 3,
    msoPropertyTypeString = 4,
    msoPropertyTypeFloat = 5,
}


回答3:

Use DSO File to Read/Write custom properties of Office documents. In fact DSO file works on any file format. DSO is Microsoft Developer Support OLE File Property Reader to read and write document properties of Microsoft Word, Microsoft Excel, Microsoft PowerPoint, and Microsoft Visio files, independent of the application that created the file. A sample application is also included with this download. Please try this :) DSO File Download.