Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

Procedimiento para crear un documento de procesamiento de texto proporcionando un nombre de archivo (SDK de Open XML)

Esta documentación es preliminar y está sujeta a modificaciones.

Última modificación: viernes, 27 de julio de 2012

Hace referencia a: Office 2013 | Open XML

En este artículo
Creación de un objeto WordprocessingDocument
Estructura de un documento WordProcessingML
Generación del marcado WordprocessingML
Código de ejemplo

En este tema se muestra cómo usar las clases de SDK de Open XML 2.5 para Office para crear un documento de procesamiento de texto mediante programación.

Se requieren las siguientes directivas de ensamblado para compilar el código de este tema.

using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;

En Open XML SDK, la clase WordprocessingDocument representa un paquete de documentos de Word. Para crear un documento de Word, cree una instancia de la clase WordprocessingDocument y rellénela con partes. Como mínimo, el documento debe tener una parte de documento principal que sirva como contenedor del texto principal del documento. El texto está representado en el paquete como XML que usa marcado WordprocessingML.

Para crear la instancia de clase, llame al método Create(String, WordprocessingDocumentType). Se proporcionan varios métodos Create(), cada uno con una firma distinta. El código de ejemplo de este tema usa el método Create con una firma que necesita dos parámetros. El primero toma una cadena de ruta de acceso completa que representa el documento que desea crear. El segundo es miembro de la enumeración WordprocessingDocumentType. Este parámetro representa el tipo de documento. Por ejemplo, hay distintos miembros de la enumeración WordProcessingDocumentType para cada documento, plantilla y variedad de documentos y plantillas habilitados para macros.

Nota Nota

Seleccione cuidadosamente el WordProcessingDocumentType correcto y compruebe que el archivo almacenado tenga la extensión de archivo correcta y adecuada. Si WordProcessingDocumentType no coincide con la extensión de archivo, se produce un error al abrir el archivo en Microsoft Word.

El código que llama al método Create es parte de una instrucción using seguida de un bloque entre corchetes, como se muestra en el siguiente ejemplo de código.

using (WordprocessingDocument wordDocument =
    WordprocessingDocument.Create(filepath, WordprocessingDocumentType.Document))
{
    // Insert other code here. 
}

La instrucción using proporciona una alternativa recomendada a la típica secuencia .Create, .Save, .Close. Asegura que el método Dispose () (método interno usado por Open XML SDK para limpiar recursos) se llame automáticamente cuando se llega al corchete de cierre. El bloque posterior a la instrucción using establece un ámbito para el objeto que se crea o se nombra en la instrucción using, en este caso wordDocument. Debido a que la clase WordprocessingDocument de Open XML SDK automáticamente guarda y cierra el objeto como parte de su implementación System.IDisposable, y como se llama automáticamente a Dispose al salir del bloque entre corchetes, no es necesario llamar explícitamente a Save y Close, siempre y cuando use using.

Una vez que haya creado el paquete de documentos de Word, puede agregarle elementos. Para agregar el elemento de documento principal, debe llamar al método AddMainDocumentPart() de la clase WordprocessingDocument. Una vez hecho esto, puede comenzar a agregar el texto y la estructura del documento.

La estructura básica de un documento WordProcessingML consta de los elementos document y body, seguidos de uno o más elementos de nivel de bloque, como p, que representa un párrafo. Un párrafo contiene uno o más elementos r. La r es por run (segmento), que es una región de texto con un conjunto de propiedades comunes, como el formato. Un segmento contiene uno o más elementos t. El elemento t contiene un intervalo de texto. El marcado WordprocessingML para el documento que crea el código de ejemplo se muestra en el siguiente ejemplo de código.

<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:body>
    <w:p>
      <w:r>
        <w:t>Create text in body - CreateWordprocessingDocument</w:t>
      </w:r>
    </w:p>
  </w:body>
</w:document>

Con SDK de Open XML 2.5 puede crear contenido y estructuras de documentos mediante clases fuertemente tipadas que corresponden a elementos de WordprocessingML. Puede encontrar estas clases en el espacio de nombres DocumentFormat.OpenXml.Wordprocessing. En la siguiente tabla se enumeran los nombres de las clases que corresponden a los elementos document, body, p, r y t.

Elemento de WordprocessingML

Clase de SDK de Open XML 2.5

Descripción

document

Document

El elemento raíz del elemento de documento principal.

body

Body

El contenedor de las estructuras a nivel de bloque, como párrafos, tablas, anotaciones y otras especificadas en la especificación ISO/IEC 29500.

p

Paragraph

Un párrafo.

r

Run

Un segmento.

t

Text

Un intervalo de texto.

Para crear la estructura de documento básica mediante Open XML SDK, debe crear una instancia de la clase Document, asignarla a la propiedad Document del elemento de documento principal y agregar instancias de las clases Body, Paragraph, Run y Text. Esto se muestra en la lista de código de ejemplo y permite generar el marcado WordprocessingML requerido. Si bien el código de la lista del ejemplo llama al método AppendChild de cada clase, en ocasiones puede hacer el código más breve y fácil de leer mediante la técnica que se muestra en el siguiente ejemplo de código.

mainPart.Document = new Document(
   new Body(
      new Paragraph(
         new Run(
            new Text("Create text in body - CreateWordprocessingDocument")))));

El método CreateWordprocessingDocument se puede usar para crear un documento de Word básico. Para llamarlo, se debe pasar una ruta de acceso completa como único parámetro. En el siguiente ejemplo de código, se crea el archivo Invoice.docx en la carpeta Documentos públicos.

CreateWordprocessingDocument(@"c:\Users\Public\Documents\Invoice.docx");

La extensión de archivo, .docx, coincide con el tipo de archivo especificado por el parámetro WordprocessingDocumentType.Document en la llamada al método Create.

A continuación se muestra el ejemplo de código completo en C# y Visual Basic.

public static void CreateWordprocessingDocument(string filepath)
{
    // Create a document by supplying the filepath. 
    using (WordprocessingDocument wordDocument =
        WordprocessingDocument.Create(filepath, WordprocessingDocumentType.Document))
    {
        // Add a main document part. 
        MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();

        // Create the document structure and add some text.
        mainPart.Document = new Document();
        Body body = mainPart.Document.AppendChild(new Body());
        Paragraph para = body.AppendChild(new Paragraph());
        Run run = para.AppendChild(new Run());
        run.AppendChild(new Text("Create text in body - CreateWordprocessingDocument"));
    }
}

Contribuir a este artículo

¿Desea editar o sugerir cambios para este contenido? Puede editar o enviar los cambios a este artículo con GitHub.

Mostrar:
© 2015 Microsoft