1. produkty
  2.   Zpracování textu
  3.   .NET
  4.   Open XML SDK
 
  

Knihovna .NET pro vytváření dokumentů pro zpracování textu

Číst, psát, manipulovat a převádět soubory Word, vytvářet tabulky v DOCX prostřednictvím Open Source .NET API.

Open XML SDK je open source API vyvinuté společností Microsoft a distribuované pod Microsoft open source kódem chování pro manipulaci s dokumenty pro zpracování textu včetně DOCXDOTXDOCM, formáty souborů  DOTM

Pomocí API můžete přidat text, záhlaví, zápatí, vysvětlivky, poznámky pod čarou, styly, motivy a další. Umožňuje generovat vysoce výkonné wordové dokumenty a extrahovat z nich data. Rozhraní API podporuje různé platformy .NET včetně .NET 3.5, .NET 4.0, .NET 4.6 a .NET Standard 1.3.

Previous Next

Začínáme s Open XML SDK

Nejprve musíte mít .NET Framework 3.5 nebo vyšší. Poté si repozitář stáhněte ručně z GitHub nebo jej nainstalujte z NuGet.

Instalace  Otevřete XML SDK z NuGet

 Install-Package DocumentFormat.OpenXml

Manipulujte se souborem DOCX pomocí C#

Open XML SDK umožňuje programátorům .NET vytvářet a upravovat textový editor z jejich vlastních aplikací .NET. Chcete-li upravit existující soubor, můžete otevřít existující soubor a připojit změny, jako je text, odstavce, tabulky a další.

Přidat odstavec v 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"));
}

Vytvořte tabulku v DOCX pomocí C#

Rozhraní API umožňuje vývojářům přidat tabulku do dokumentů textového procesoru. Můžete přidat tabulku, nastavit vlastnosti tabulky, nastavit mřížku tabulky a vlastnosti mřížky sloupců. Kromě toho můžete spravovat buňky tabulky a řádky pomocí tříd TableCell a TableRow.

Vytvořit tabulku v 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);
}

Záhlaví a zápatí v dokumentu pro zpracování textu

Správná organizace dokumentů je velmi důležitá a je potřebou každé organizace. Záhlaví a zápatí jsou klíčové části dokumentů, které mohou pomoci správně uspořádat dokumenty textového editoru umístěním některých dalších informací, jako jsou příslušná data, témata, jméno autora, obrázky, čísla stránek a tak dále. Podporuje také přidání více hlaviček.

Správa záhlaví v dokumentu aplikace 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);
}

Správa zápatí v dokumentu aplikace 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);
}
 Čeština