ワープロ ドキュメントを作成するための .NET ライブラリ

Word ファイルの読み取り、書き込み、操作、変換、オープン ソース .NET API を介した DOCX でのテーブルの作成。

Open XML SDK は、 を含むワープロ ドキュメントを操作するために Microsoft によって開発され、Microsoft オープン ソース行動規範の下で配布されるオープン ソース API です。 DOCXDOTXDOCMDOTM ファイル形式

API を使用して、テキスト、ヘッダー、フッター、巻末注、脚注、スタイル、テーマなどを追加できます。高性能な Word ドキュメントを生成し、そこからデータを抽出できます。 API は、.NET 3.5、.NET 4.0、.NET 4.6、および .NET Standard 1.3 を含むさまざまな .NET プラットフォームをサポートします。

Previous Next

Open XML SDK の概要

まず、.NET Framework 3.5 以降が必要です。その後、リポジトリを GitHub から手動でダウンロードするか、NuGet.

インストール NuGet からの Open XML SDK

 Install-Package DocumentFormat.OpenXml

C# を使用して DOCX ファイルを操作する

Open XML SDK を使用すると、.NET プログラマーは独自の .NET アプリケーションからワード プロセッシングを作成および変更できます。既存のファイルを変更するには、既存のファイルを開いて、テキスト、段落、表などの変更を追加します。

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

C# を使用して DOCX でテーブルを作成する

API を使用すると、開発者はワープロ ドキュメントにテーブルを追加できます。テーブルの追加、テーブル プロパティの設定、テーブル グリッドおよび列グリッド プロパティの設定を行うことができます。さらに、TableCell クラスと TableRow クラスをそれぞれ使用して、表のセルと行を管理できます。

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

ワープロ ドキュメントのヘッダーとフッター

ドキュメントを適切に整理することは非常に重要であり、すべての組織に必要です。ヘッダーとフッターは、関連する日付、トピック、作成者名、画像、ページ番号などの追加情報を配置することで、ワープロ ドキュメントを適切に整理するのに役立つドキュメントの重要な部分です。また、複数のヘッダーの追加もサポートしています。

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

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