Recuperar valores de propriedades de aplicativo de um documento de processamento de texto
Este tópico mostra como utilizar as classes no SDK Open XML para o Office para obter programaticamente uma propriedade de aplicação a partir de um documento do Microsoft Word, sem carregar o documento para Word. Contém código de exemplo para ilustrar esta tarefa.
A Obter Propriedades da Aplicação
Para obter as propriedades do documento da aplicação, pode obter a ExtendedFilePropertiesPart propriedade de um WordprocessingDocument objeto e, em seguida, obter a propriedade de aplicação específica de que precisa. Para tal, primeiro tem de obter uma referência ao documento, conforme mostrado no seguinte código.
using (WordprocessingDocument document = WordprocessingDocument.Open(fileName, false))
{
Tendo em conta a referência ao WordprocessingDocument objeto, pode obter uma referência à ExtendedFilePropertiesPart propriedade do documento. Este objeto fornece as suas próprias propriedades, cada uma das quais expõe uma das propriedades do documento da aplicação.
if (document.ExtendedFilePropertiesPart is null)
{
throw new ArgumentNullException("ExtendedFilePropertiesPart is null.");
}
var props = document.ExtendedFilePropertiesPart.Properties;
Assim que tiver a referência às propriedades do ExtendedFilePropertiesPart, pode obter qualquer uma das propriedades da aplicação, utilizando código simples, como o mostrado no exemplo seguinte. Tenha em atenção que o código tem de confirmar que a referência a cada propriedade não null
é de antes de Nothing
obter a respetiva Text
propriedade. Ao contrário das propriedades do núcleo, as propriedades do documento não estão disponíveis se você (ou a aplicação) não lhes tiver dado especificamente um valor.
if (props.Company is not null)
Console.WriteLine("Company = " + props.Company.Text);
if (props.Lines is not null)
Console.WriteLine("Lines = " + props.Lines.Text);
if (props.Manager is not null)
Console.WriteLine("Manager = " + props.Manager.Text);
Código de exemplo
Segue-se o exemplo de código completo em C# e Visual Basic.
using DocumentFormat.OpenXml.Packaging;
using System;
static void GetApplicationProperty(string fileName)
{
using (WordprocessingDocument document = WordprocessingDocument.Open(fileName, false))
{
if (document.ExtendedFilePropertiesPart is null)
{
throw new ArgumentNullException("ExtendedFilePropertiesPart is null.");
}
var props = document.ExtendedFilePropertiesPart.Properties;
if (props.Company is not null)
Console.WriteLine("Company = " + props.Company.Text);
if (props.Lines is not null)
Console.WriteLine("Lines = " + props.Lines.Text);
if (props.Manager is not null)
Console.WriteLine("Manager = " + props.Manager.Text);
}
}