1. Produkter
  2.   Ordbehandling
  3.   .NET
  4.   Open XML SDK
 
  

.NET-bibliotek för att skapa ordbehandlingsdokument

Läs, skriv, manipulera och konvertera Word-filer, Skapa tabeller i DOCX via Open Source .NET API.

Open XML SDK är ett API för öppen källkod, utvecklat av Microsoft och distribuerat under Microsofts uppförandekod för öppen källkod för att manipulera ordbehandlingsdokument inklusive DOCXDOTXDOCMDOTM filformat

Med hjälp av API:et kan du lägga till text, sidhuvud, sidfot, slutnoter, fotnoter, stilar, teman och mer. Det låter dig skapa högpresterande word-dokument och extrahera data från dem. API:et stöder olika .NET-plattformar inklusive .NET 3.5, .NET 4.0, .NET 4.6 och .NET Standard 1.3.

Previous Next

Komma igång med Open XML SDK

Först och främst måste du ha .NET Framework 3.5 eller högre. Därefter laddar du ned arkivet manuellt från GitHub eller installerar det från NuGet.

Installation  Öppna XML SDK från NuGet

 Install-Package DocumentFormat.OpenXml

Manipulera DOCX-fil med C#

Open XML SDK tillåter .NET-programmerare att skapa och modifiera ordbehandling från sina egna .NET-applikationer. För att ändra en befintlig fil kan du öppna en befintlig fil och lägga till ändringar som text, stycken, tabeller och mer.

Lägg till stycke i 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"));
}

Skapa en tabell i DOCX med C#

API:et låter utvecklarna lägga till en tabell i ordbehandlingsdokument. Du kan lägga till en tabell, ange tabellegenskaper, ange tabellrutnät och kolumnrutnätsegenskaper. Dessutom kan du hantera tabellceller och rader med hjälp av klasserna TableCell respektive TableRow.

Skapa tabell i 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);
}

Sidhuvuden och sidfötter i ordbehandlingsdokument

Korrekt organisation av dokument är mycket viktigt och är behovet av varje organisation. Sidhuvuden och sidfötter är nyckeldelarna i dokument som kan hjälpa till att organisera ordbehandlingsdokumenten på rätt sätt genom att placera ytterligare information som relevanta datum, ämnen, författarens namn, bilder, sidnummer och så vidare. Det stöder även tillägg av flera rubriker.

Hantera rubriker i Word-dokument

 
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);
}

Hantera sidfötter i Word-dokument

 
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);
}
 Svenska