[转]how to programatically access built-in properties of open xml word doc(如何读取open xml格式文档属性)
WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open(filePath, true);
Body body = wordprocessingDocument.MainDocumentPart.Document.Body;
String message = string.Empty;
ExtendedFilePropertiesPart appPart = wordprocessingDocument.ExtendedFilePropertiesPart;
Manager = appPart.Properties.Manager.InnerText;
if (Manager != null)
message = "Manager : " + Manager + "\n";
//Access company property
Company = appPart.Properties.Company.Text;
if (Company != null)
message += "Company : " + Company + "\n";
CoreFilePropertiesPart corePart = wordprocessingDocument.CoreFilePropertiesPart;
XmlDocument xmlProperties = new XmlDocument();
xmlProperties.Load(corePart.GetStream());
//Access Title property
Title = xmlProperties.GetElementsByTagName("title",DC).Item(0).InnerText;
if (Title != null)
message += "Title : " + Title + "\n";
//Access Subject property
Subject = xmlProperties.GetElementsByTagName("subject", DC).Item(0).InnerText;
if (Subject != null)
message += "Subject : " + Subject + "\n";
//Access Author property
Author = xmlProperties.GetElementsByTagName("creator", DC).Item(0).InnerText;
if (Author != null)
message += "Author : " + Author + "\n";
//Access Keywords property
KeyWords = xmlProperties.GetElementsByTagName("keywords", CP).Item(0).InnerText;
if (KeyWords != null)
message += "KeyWords : " + KeyWords + "\n";
//Access Comments property
Comments = xmlProperties.GetElementsByTagName("description", DC).Item(0).InnerText;
if (Comments != null)
message += "Comments : " + Comments + "\n";
//Access Category property
Category = xmlProperties.GetElementsByTagName("category", CP).Item(0).InnerText;
if (Category != null)
message += "Category : " + Category + "\n";
MessageBox.Show(message, "Built-In Properties", MessageBoxButtons.OK, MessageBoxIcon.Information);
wordprocessingDocument.Close();