如何:从文档属性中读取或向文档属性写入
您可以将文档属性与文档一起存储在上面列出的 Microsoft Office 应用程序中。 这些应用程序提供了很多内置属性,如 Author、Title 和 Subject。 本主题介绍如何在 Microsoft Office Excel 和 Microsoft Office Word 中设置文档属性。
有关相关的视频演示,请参见 How Do I: Access and Manipulate Custom Document Properties in Microsoft Word?(如何实现:在 Microsoft Word 中访问和操作自定义文档属性。)。
**适用于:**本主题中的信息适用于以下应用程序的文档级项目和应用程序级项目:Excel 2007 和 Excel 2010;PowerPoint 2007 和 PowerPoint 2010;Project 2007 和 Project 2010;Word 2007 和 Word 2010。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能。
在 Excel 中设置文档属性
若要使用 Excel 中的内置属性,请使用下列属性:
在文档级项目中,请使用 ThisWorkbook 类的 BuiltinDocumentProperties 属性。
在应用程序级项目中,请使用 Microsoft.Office.Interop.Excel.Workbook 对象的 BuiltinDocumentProperties 属性。
这些属性返回一个 DocumentProperties 对象,该对象是 DocumentProperty 对象的集合。 您可以使用该集合的 Item 属性,按名称或按索引检索该集合中的特定属性。
以下代码示例演示如何更改文档级项目中的内置 Revision Number 属性。
更改 Excel 中的 Revision Number 属性
将内置文档属性赋给一个变量。
Dim properties As Microsoft.Office.Core.DocumentProperties properties = DirectCast(Globals.ThisWorkbook.BuiltinDocumentProperties, _ Microsoft.Office.Core.DocumentProperties) Dim prop As Microsoft.Office.Core.DocumentProperty prop = properties.Item("Revision Number")
Microsoft.Office.Core.DocumentProperties properties; properties = (Microsoft.Office.Core.DocumentProperties) Globals.ThisWorkbook.BuiltinDocumentProperties; Microsoft.Office.Core.DocumentProperty prop; prop = properties["Revision Number"];
将 Revision Number 属性增加 1。
If prop.Value Is Nothing Then prop.Value = 1 Else Dim revision As Integer If Integer.TryParse(prop.Value.ToString(), revision) Then prop.Value = revision + 1 MessageBox.Show("Revision Number = " & revision) Else MessageBox.Show("Revision Number = invalid value") End If End If
if (prop.Value == null) { prop.Value = 1; } else { int revision; if (int.TryParse((string)prop.Value, out revision)) { prop.Value = revision + 1; MessageBox.Show("Revision Number = " + revision); } else { MessageBox.Show("Revision Number = invalid value"); } }
在 Word 中设置文档属性
若要使用 Word 中的内置属性,请使用下列属性:
在文档级项目中,请使用 ThisDocument 类的 BuiltInDocumentProperties 属性。
在应用程序级项目中,请使用 Microsoft.Office.Interop.Word.Document 对象的 BuiltInDocumentProperties 属性。
这些属性返回一个 DocumentProperties 对象,该对象是 DocumentProperty 对象的集合。 您可以使用该集合的 Item 属性,按名称或按索引检索该集合中的特定属性。
以下代码示例演示如何更改文档级项目中的内置 Subject 属性。
更改 Subject 属性
将内置文档属性赋给一个变量。
Dim properties As Microsoft.Office.Core.DocumentProperties properties = DirectCast(Globals.ThisDocument.BuiltInDocumentProperties, _ Microsoft.Office.Core.DocumentProperties)
Microsoft.Office.Core.DocumentProperties properties; properties = (Microsoft.Office.Core.DocumentProperties) Globals.ThisDocument.BuiltInDocumentProperties;
将 Subject 属性更改为“Whitepaper”。
' Set the Subject property. properties.Item("Subject").Value = "Whitepaper"
// Set the Subject property. properties["Subject"].Value = "Whitepaper";
可靠编程
这些示例假设您已经在 Excel 文档级项目中的 ThisWorkbook 类中以及 Word 文档级项目中的 ThisDocument 类中编写代码。
尽管您使用的是 Word 和 Excel 及其对象,但 Microsoft Office 提供了可用的内置文档属性的列表。 尝试访问未定义的属性会引发异常。