Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique montre comment utiliser les classes du Kit de développement logiciel (SDK) Open XML pour Office afin de créer par programmation un document de traitement de texte.
Création d’un objet WordprocessingDocument
Dans le Kit de développement logiciel (SDK) Open XML, la WordprocessingDocument classe représente un package de document Word. Pour créer un document Word, vous créez un instance de la WordprocessingDocument classe et le remplissez avec des parties. Au minimum, le document doit avoir un composant de document principal qui sert de conteneur pour le texte principal du document. Le texte est représenté dans le package au format XML à l'aide de balisage WordprocessingML.
Pour créer la classe instance vous appelez la Create(String, WordprocessingDocumentType) méthode . Plusieurs Create méthodes sont fournies, chacune avec une signature différente. L’exemple de code de cette rubrique utilise la Create
méthode avec une signature qui nécessite deux paramètres. Le premier paramètre prend une chaîne de chemin d'accès complet qui représente le document que vous souhaitez créer. Le deuxième paramètre est un membre de l’énumération WordprocessingDocumentType .
Ce paramètre représente le type de document. Par exemple, il existe un membre différent de l’énumération WordProcessingDocumentType
pour chaque document, modèle et la variété de document et de modèle activée par la macro.
Remarque
Sélectionnez soigneusement le fichier approprié WordProcessingDocumentType
et vérifiez que le fichier persistant a l’extension de fichier correspondante correcte. Si ne correspond pas à WordProcessingDocumentType
l’extension de fichier, une erreur se produit lorsque vous ouvrez le fichier dans Microsoft Word.
Le code qui appelle la Create
méthode fait partie d’une using
instruction suivie d’un bloc entre crochets, comme illustré dans l’exemple de code suivant.
using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(filepath, WordprocessingDocumentType.Document))
{
Avec v3.0.0+ la Close() méthode a été supprimée au profit de l’instruction using.
Il garantit que la Dispose() méthode est automatiquement appelée lorsque l’accolade fermante est atteinte. Le bloc qui suit l’instruction using établit une étendue pour l’objet créé ou nommé dans l’instruction using. Étant donné que la WordprocessingDocument classe du Kit de développement logiciel (SDK) Open XML enregistre et ferme automatiquement l’objet dans le cadre de son IDisposable implémentation, et que Dispose() est appelée automatiquement lorsque vous quittez le bloc, vous n’avez pas à appeler Save() explicitement ou Dispose() tant que vous utilisez une using
instruction.
Une fois le package de document Word créé, vous pouvez y ajouter des composants. Pour ajouter la partie de document main, vous appelez la AddMainDocumentPart méthode de la WordprocessingDocument classe . Après cela, vous pouvez ajouter la structure de document et le texte.
Structure d’un document WordProcessingML
La structure de base d’un WordProcessingML
document se compose des document
éléments et body
, suivis d’un ou plusieurs éléments de niveau bloc tels que p
, qui représente un paragraphe. Un paragraphe contient un ou plusieurs r
éléments. l’acronyme r
de run, qui est une région de texte avec un ensemble commun de propriétés, telles que la mise en forme. Une exécution contient un ou plusieurs t
éléments. L’élément t
contient une plage de texte. L’exemple de code suivant montre le WordprocessingML
balisage d’un document qui contient le texte « Exemple de texte ».
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
<w:body>
<w:p>
<w:r>
<w:t>Example text.</w:t>
</w:r>
</w:p>
</w:body>
</w:document>
À l’aide du Kit de développement logiciel (SDK) Open XML, vous pouvez créer une structure de document et du contenu à l’aide de classes fortement typées qui correspondent à WordprocessingML
des éléments. Vous trouverez ces classes dans l’espace de DocumentFormat.OpenXml.Wordprocessing noms . Le tableau suivant répertorie les noms de classes des classes qui correspondent aux document
éléments , body
, p
, r
et t
.
Élément WordprocessingML | Classe du Kit de développement logiciel (SDK) Open XML | Description |
---|---|---|
<document/> |
Document | Élément racine de la partie principale du document. |
<body/> |
Body | Conteneur des structures de niveau bloc, telles que paragraphs, tables, annotations et autres structures décrites dans la spécification ISO/IEC 29500. |
<p/> |
Paragraph | Paragraphe. |
<r/> |
Run | Exécution. |
<t/> |
Text | Plage de texte. |
Pour plus d’informations sur la structure globale des parties et éléments d’un document WordprocessingML, consultez Structure d’un document WordprocessingML.
Génération du balisage WordprocessingML
Pour créer la structure de document de base à l’aide du Kit de développement logiciel (SDK) Open XML, vous instanciez la Document
classe, vous l’affectez à la Document
propriété du composant de document main, puis ajoutez des instances des Body
classes , Paragraph
et Run
Text
. Ceci est illustré dans l'exemple de code, qui génère le balisage WordprocessingML requis. Bien que le code de l’exemple de liste appelle la AppendChild
méthode de chaque classe, vous pouvez parfois rendre le code plus court et plus facile à lire à l’aide de la technique présentée dans l’exemple de code suivant.
mainPart.Document = new Document(
new Body(
new Paragraph(
new Run(
new Text("Create text in body - CreateWordprocessingDocument")))));
Exemple de code
La CreateWordprocessingDocument
méthode peut être utilisée pour créer un document Word de base. Pour l'appeler, passez un chemin d'accès complet comme paramètre unique. L'exemple de code suivant crée le fichier Invoice.docx dans le dossier Documents publics.
CreateWordprocessingDocument(args[0]);
L'extension de nom de fichier, .docx, correspond au type de fichier spécifié par le paramètre WordprocessingDocumentType.Document dans l'appel à la méthode Create.
Voici l'exemple de code complet en C# et Visual Basic.
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"));
}