.NET-bibliotheek voor het maken van tekstverwerkingsdocumenten
Lees, schrijf, manipuleer en converteer Word-bestanden, maak tabellen in DOCX via Open Source .NET API.
Open XML SDK is een open source API, ontwikkeld door Microsoft en gedistribueerd onder de open source gedragscode van Microsoft om tekstverwerkingsdocumenten te manipuleren, waaronder DOCX, DOTX, DOCM, DOTM bestandsindelingen
Met behulp van de API kunt u tekst, koptekst, voettekst, eindnoten, voetnoten, stijlen, thema's en meer toevoegen. Hiermee kunt u hoogwaardige Word-documenten genereren en er gegevens uit extraheren. De API ondersteunt verschillende .NET-platforms, waaronder .NET 3.5, .NET 4.0, .NET 4.6 en .NET Standard 1.3.
Aan de slag met Open XML SDK
Allereerst moet u .NET Framework 3.5 of hoger hebben. Download daarna de repository handmatig van GitHub of installeer deze vanaf NuGet.
Installatie Open XML SDK van NuGet
Install-Package DocumentFormat.OpenXml
Manipuleer DOCX-bestand met C#
Met Open XML SDK kunnen .NET-programmeurs tekstverwerking maken en wijzigen vanuit hun eigen .NET-applicaties. Om een bestaand bestand te wijzigen, kunt u een bestaand bestand openen en wijzigingen zoals tekst, alinea's, tabellen en meer toevoegen.
Alinea toevoegen in 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"));
}
Maak een tabel in DOCX met C#
Met de API kunnen de ontwikkelaars een tabel toevoegen aan tekstverwerkingsdocumenten. U kunt een tabel toevoegen, tabeleigenschappen instellen, tabelraster- en kolomrastereigenschappen instellen. Bovendien kunt u tabelcellen en rijen beheren met respectievelijk TableCell- en TableRow-klassen.
Tabel maken in 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);
}
Kop- en voetteksten in tekstverwerkingsdocument
Een goede organisatie van documenten is erg belangrijk en is de behoefte van elke organisatie. Kop- en voetteksten zijn de belangrijkste onderdelen van documenten die kunnen helpen om de tekstverwerkingsdocumenten goed te organiseren door wat extra informatie te plaatsen, zoals relevante datums, onderwerpen, de naam van de auteur, afbeeldingen, paginanummers, enzovoort. Het ondersteunt ook de toevoeging van meerdere headers.
Kopteksten beheren in Word-document
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);
}
Voetteksten beheren in Word-document
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);
}