Comment exporter et enregistrer des documents Word dans .NET

Comment exporter et enregistrer des documents Word dans .NET

Ce guide montre comment exporter et enregistrer un document Word avec Aspose.Words FOSS pour .NET : enregistrement avec un format implicite ou explicite, configuration des options d’enregistrement OOXML, exportation vers Markdown, exportation vers du texte brut, et détection du format d’un fichier avant de le convertir. Aspose.Words FOSS pour .NET est disponible via NuGet ou en le compilant à partir du code source.

Guide étape par étape

Étape 1 : Obtenir la bibliothèque

Clonez le dépôt et construisez-le Aspose.Words.sln en configuration Release, puis ajoutez une référence de projet à Aspose.Words.csproj à partir de votre propre projet .NET, comme décrit dans le Guide d’installation. Ajoutez using Aspose.Words; en haut de tout fichier qui enregistre des documents.


Étape 2 : Enregistrer avec un format implicite ou explicite

Document.Save(fileName) déduit le format cible à partir de l’extension du fichier. Save(fileName, saveFormat) rend le format explicite quel que soit l’extension en acceptant une valeur d’énumération SaveFormat, et Save(fileName, saveOptions) (ou les surcharges correspondantes de Stream) accepte une sous-classe SaveOptions pour un contrôle spécifique au format. SaveOptions.CreateSaveOptions(saveFormat) est une fabrique statique qui renvoie la sous-classe d’options correspondante avec ses valeurs par défaut déjà définies pour un SaveFormat donné. Cette édition enregistre pleinement à la fois vers et depuis DOCX, DOCM, DOTX, DOTM et Flat OPC (ainsi que leurs variantes macro-activées et modèles), ainsi que Markdown et texte brut.


Étape 3 : Configurer les options d’exportation OOXML

OoxmlSaveOptions configure l’enregistrement vers n’importe laquelle des variantes Open XML. Sa propriété SaveFormat sélectionne spécifiquement DOCX, DOCM, DOTX, DOTM ou Flat OPC; Password définit un mot de passe d’ouverture sur le fichier enregistré, indépendamment de la restriction d’édition de Document.Protect; Compliance choisit le niveau de stricte OOXML; et CompressionLevel / Zip64Mode contrôlent l’empaquetage ZIP sous-jacent. Créez-en un avec new OoxmlSaveOptions(saveFormat) ou via SaveOptions.CreateSaveOptions(saveFormat).


Étape 4 : Exporter vers Markdown

MarkdownSaveOptions contrôle l’exportation Markdown: ListExportMode et LinkExportMode régissent la façon dont les listes et les hyperliens sont rendus, ImagesFolder / ImagesFolderAlias contrôlent l’endroit où les images extraites sont placées et la façon dont elles sont référencées, ExportImagesAsBase64 les intègre en ligne au lieu d’écrire des fichiers séparés, et TableContentAlignment influence le balisage des tables générées. Transmettez une instance MarkdownSaveOptions à Document.Save(fileName, saveOptions) avec un nom de fichier .md, ou définissez explicitement son SaveFormat.


Étape 5 : Exporter en texte brut

TxtSaveOptions (via sa base partagée TxtSaveOptionsBase, également utilisée par MarkdownSaveOptions) contrôle l’exportation en texte brut: Encoding définit l’encodage des caractères, ParagraphBreak définit la chaîne de fin de ligne, MaxCharactersPerLine enveloppe les longues lignes, SimplifyListLabels normalise les puces et les numéros de listes en caractères simples, et PreserveTableLayout maintient l’alignement des colonnes de tableau en utilisant des espaces.


Étape 6 : Détecter un format avant de convertir

Avant de convertir un fichier au format inconnu, FileFormatUtil.DetectFileFormat(fileName) renvoie un FileFormatInfo contenant le LoadFormat détecté. Associez-le à FileFormatUtil.LoadFormatToSaveFormat(loadFormat) pour vérifier si ce format peut effectuer un aller-retour via les formats pris en charge par cette édition avant d’appeler Document.Save. Certains membres d’énumération SaveFormat existent pour l’exhaustivité de API, mais la version allégée et open-source ne fournit pas de lecteur ou d’écrivain fonctionnel pour ces formats; limitez-vous à la famille DOCX/DOCM/DOTX/DOTM/Flat OPC ainsi qu’à Markdown et au texte brut pour obtenir une sortie fiable.

Problèmes courants et solutions

Save(fileName) écrit le mauvais format. L’extension du fichier ne correspond pas au format prévu. Utilisez Save(fileName, saveFormat) or Save(fileName, saveOptions) pour rendre le format explicite au lieu de se fier à l’extension.

Le fichier OOXML enregistré ne s’ouvrira pas avec un mot de passe. OoxmlSaveOptions.Password n’a pas été défini avant l’enregistrement. Construisez un OoxmlSaveOptions, définissez Password, et transmettez-le à Save.

L’exportation Markdown disperse les fichiers image de façon inattendue. Default MarkdownSaveOptions le comportement extrait les images vers des fichiers séparés. Définissez ExportImagesAsBase64 = true pour un fichier Markdown autonome, ou définissez ImagesFolder pour contrôler l’emplacement des images.

L’exportation en texte brut perd l’alignement des colonnes du tableau. TxtSaveOptions.PreserveTableLayout reste à sa valeur par défaut. Définir PreserveTableLayout = true avant d’enregistrer.

Questions fréquemment posées

Comment enregistrer dans un format spécifique indépendamment de l’extension du fichier?

Appelez Save(fileName, saveFormat) avec une valeur SaveFormat explicite, ou Save(fileName, saveOptions) avec une sous-classe SaveOptions correspondante.

Quels formats assurent un aller-retour complet dans cette édition?

DOCX, DOCM, DOTX, DOTM, Flat OPC (plus leurs variantes activées par macro et leurs modèles), Markdown et texte brut.

Comment protéger par mot de passe un fichier enregistré afin qu’il ne puisse même pas être ouvert?

Définissez Password sur une instance OoxmlSaveOptions et transmettez-la à Document.Save(fileName, saveOptions).

Comment contrôler les fins de ligne dans un fichier texte exporté?

Définissez ParagraphBreak sur une instance TxtSaveOptions avant l’enregistrement.

Comment vérifier le format d’un fichier avant de le convertir?

Appelez FileFormatUtil.DetectFileFormat(fileName) et lisez le FileFormatInfo.LoadFormat retourné.

Voir aussi

 Français