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 supprimer un composant de document (fichier) d’un document Wordprocessing par programmation.
Packages et composants Document
Un document Open XML est stocké sous forme de package, dont le format est défini par la norme ISO/IEC 29500. Le package peut contenir plusieurs parties avec des relations entre elles. La relation entre les parties détermine la catégorie du document. Un document peut être défini comme un document de traitement de texte si son élément de relation de package contient une relation avec une partie principale de document. Si son élément de relation de package contient une relation avec une partie de présentation, il peut être défini comme un document de présentation. Si son élément de relation de package contient une relation avec une partie de classeur, il est défini en tant que feuille de calcul. Dans cette rubrique, vous utiliserez un package de documents de traitement de texte.
Obtention d’un objet WordprocessingDocument
L’exemple de code commence par l’ouverture d’un fichier de package en passant un nom de fichier en tant qu’argument à l’une des méthodes surchargées Open du WordprocessingDocument qui prend une chaîne et une valeur booléenne qui spécifie si le fichier doit être ouvert en mode lecture/écriture ou non. Dans ce cas, la valeur true
booléenne spécifie que le fichier doit être ouvert en mode lecture/écriture.
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true))
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.
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.
Élément settings
Le texte suivant de la spécification ISO/IEC 29500 introduit l’élément settings dans un PresentationML
package.
Cet élément spécifie les paramètres qui ont été appliqués à un document WordprocessingML. Cet élément est l’élément racine du composant Paramètres du document dans un document WordprocessingML.
Exemple : Considérez le fragment WordprocessingML suivant pour la partie paramètres d’un document :
<w:settings>
<w:defaultTabStop w:val="720" />
<w:characterSpacingControl w:val="dontCompress" />
</w:settings>
L’élément settings contient tous les paramètres pour ce document. Dans le cas présent, les deux paramètres appliqués sont : des incréments de taquets par défaut automatiques de 0,5 pouces, appliqué à l’aide de l’élément defaultTabStop) et pas de compression d’espace vide au niveau des caractères, appliqué à l’aide de l’élément characterSpacingControl.
© ISO/IEC 29500 : 2016
Fonctionnement de l’exemple de code
Après avoir ouvert le document, dans l’instruction using
, en tant qu’objet WordprocessingDocument , vous créez une référence au DocumentSettingsPart
composant.
Vous pouvez vérifier si ce composant existe ; le cas échéant, supprimez ce composant du package. Dans cette instance, le settings.xml
composant est supprimé du package.
MainDocumentPart? mainPart = wordDoc.MainDocumentPart;
if (mainPart is not null && mainPart.DocumentSettingsPart is not null)
{
mainPart.DeletePart(mainPart.DocumentSettingsPart);
}
Exemple de code
Voici l'exemple de code complet en C# et Visual Basic.
// To remove a document part from a package.
static void RemovePart(string document)
{
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, true))
{
MainDocumentPart? mainPart = wordDoc.MainDocumentPart;
if (mainPart is not null && mainPart.DocumentSettingsPart is not null)
{
mainPart.DeletePart(mainPart.DocumentSettingsPart);
}
}
}