Bibliothèque .NET pour la création de documents de traitement de texte

Lisez, écrivez, manipulez et convertissez des fichiers Word, créez des tableaux dans DOCX via l'API Open Source .NET.

Open XML SDK est une API open source, développée par Microsoft et distribuée sous le code de conduite open source de Microsoft pour manipuler les documents de traitement de texte, y compris DOCXDOTXDOCMDOTM formats de fichiers

À l'aide de l'API, vous pouvez ajouter du texte, un en-tête, un pied de page, des notes de fin, des notes de bas de page, des styles, des thèmes, etc. Il vous permet de générer des documents Word performants et d'en extraire des données. L'API prend en charge diverses plates-formes .NET, notamment .NET 3.5, .NET 4.0, .NET 4.6 et .NET Standard 1.3.

Previous Next

Premiers pas avec le SDK Open XML

Tout d'abord, vous devez disposer de .NET Framework 3.5 ou supérieur. Après cela, veuillez télécharger le référentiel manuellement depuis GitHub ou installez-le depuis NuGet.

Installation du SDK Open XML à partir de NuGet

 Install-Package DocumentFormat.OpenXml

Manipuler le fichier DOCX à l'aide de C#

Open XML SDK permet aux programmeurs .NET de créer et de modifier le traitement de texte à partir de leurs propres applications .NET. Afin de modifier un fichier existant, vous pouvez ouvrir un fichier existant et ajouter des modifications telles que du texte, des paragraphes, des tableaux, etc.

Ajouter un paragraphe dans DOCX - C#

// Open an existing word processing document
using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open("fileformat.docx", true))
{
  Body body = wordprocessingDocument.MainDocumentPart.Document.Body;
  // Add paragraph
  Paragraph para = body.AppendChild(new Paragraph());
  Run run = para.AppendChild(new Run());
  run.AppendChild(new Text("File Format Developer Guide"));
}

Créer une table dans DOCX à l'aide de C #

L'API permet aux développeurs d'ajouter un tableau dans les documents de traitement de texte. Vous pouvez ajouter un tableau, définir les propriétés du tableau, définir la grille du tableau et les propriétés de la grille des colonnes. De plus, vous pouvez gérer les cellules et les lignes d'un tableau à l'aide des classes TableCell et TableRow respectivement.

Créer une table dans DOCX - C#

// Open an existing word processing document
using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open("fileformat.docx", true))
{
  Body body = wordprocessingDocument.MainDocumentPart.Document.Body;
  // Create a table.
  Table table = new Table();
  // Set the style and width for the table.
  TableProperties tableProperties = new TableProperties();
  TableStyle tableStyle = new TableStyle() { Val = "TableGrid" };
  // Make the table width 100% of the page width.
  TableWidth tableWidth = new TableWidth() { Width = "5000", Type = TableWidthUnitValues.Pct };
  // Apply
  tableProperties.Append(tableStyle, tableWidth);
  table.AppendChild(tableProperties);
  // Add columns
  TableGrid tableGrid = new TableGrid(new GridColumn(), new GridColumn(), new GridColumn());
  table.AppendChild(tableGrid);
  // Create 1 row to the table.
  TableRow tableRow = new TableRow();
  // Add a cell to each column in the row.
  TableCell tableCell = new TableCell(new Paragraph(new Run(new Text("Column 1"))));
  TableCell tableCell1 = new TableCell(new Paragraph(new Run(new Text("Column 2"))));
  //Append data
  tableRow.Append(tableCell, tableCell1);
  // Add row to the table.
  table.AppendChild(tableRow);
  // Add the table to the document
  body.AppendChild(table);
}

En-têtes et pieds de page dans un document de traitement de texte

Une bonne organisation des documents est très importante et est le besoin de chaque organisation. Les en-têtes et les pieds de page sont les éléments clés des documents qui peuvent aider à organiser correctement les documents de traitement de texte en plaçant des informations supplémentaires telles que les dates pertinentes, les sujets, le nom de l'auteur, les images, les numéros de page, etc. Il prend également en charge l'ajout de plusieurs en-têtes.

Gérer les en-têtes dans un document Word

 
public static void ApplyHeader(WordprocessingDocument doc)
{
  // Get the main document part.
  MainDocumentPart mainDocPart = doc.MainDocumentPart;
  HeaderPart headerPart1 = mainDocPart.AddNewPart("r97");
  Header header1 = new Header();
  Paragraph paragraph1 = new Paragraph(){ };
  Run run1 = new Run();
  Text text1 = new Text();
  text1.Text = "Header stuff";
  run1.Append(text1);
  paragraph1.Append(run1);
  header1.Append(paragraph1);
  headerPart1.Header = header1;
  SectionProperties sectionProperties1 = mainDocPart.Document.Body.Descendants().FirstOrDefault();
  if (sectionProperties1 == null)
  {
  sectionProperties1 = new SectionProperties() { };
  mainDocPart.Document.Body.Append(sectionProperties1);
  }
  HeaderReference headerReference1 = new HeaderReference() { Type = HeaderFooterValues.Default, Id = "r97" };
  sectionProperties1.InsertAt(headerReference1,0);
}

Gérer les pieds de page dans un document Word

 
public static void ApplyFooter(WordprocessingDocument doc)
{
  // Get the main document part.
  MainDocumentPart mainDocPart = doc.MainDocumentPart;
  FooterPart footerPart1 = mainDocPart.AddNewPart("r98");
  Footer footer1 = new Footer();
  Paragraph paragraph1 = new Paragraph() { };
  Run run1 = new Run();
  Text text1 = new Text();
  text1.Text = "Footer stuff";
  run1.Append(text1);
  paragraph1.Append(run1);
  footer1.Append(paragraph1);
  footerPart1.Footer = footer1;
  SectionProperties sectionProperties1 = mainDocPart.Document.Body.Descendants().FirstOrDefault();
  if (sectionProperties1 == null)
  {
    sectionProperties1 = new SectionProperties() { };
    mainDocPart.Document.Body.Append(sectionProperties1);
  }
  FooterReference footerReference1 = new FooterReference() { Type = DocumentFormat.OpenXml.Wordprocessing.HeaderFooterValues.Default, Id = "r98" };
  sectionProperties1.InsertAt(footerReference1, 0);
}
 Français