IRONWORDの使用

C#を使用してWordドキュメントを操作する方法

リーガン・パン
リーガン・パン
2023年12月24日
共有:

イントロダクション

マイクロソフトはワープロとしてのワードを作った。 Xenixシステム向けにMulti-Tool Wordの名前で最初に利用可能になったのは、1983年10月25日に導入されました。その後のバージョンは、SCO Unix (1990年)、Microsoft Windows (1989年)、Atari ST (1988年)、OS/2 (1989年)、AT&T UNIX PC (1985年)、DOSを実行するIBMパーソナルコンピュータ (1983年)、クラシックmacOSを実行するApple Macintosh (1985年)、macOS (2001年)、Webブラウザ (2010年)、iOS (2014年)、およびAndroid (2015年)など、幅広いオペレーティングシステム向けに開発されました。 ワインを使えば、Linux上で旧バージョンのMicrosoft Wordを実行できる。

商用版のWordは、スタンドアロンアプリケーションとして、またはMicrosoft 365のコンポーネントとしてライセンスできます。これは、永続ライセンスとして購入することも、Microsoft 365サブスクリプションの一部として購入することもできます。 この記事では、C#を使用してMicrosoft Interopアセンブリの助けを借りてWordドキュメントを操作し、IronXLがExcelドキュメントの編集にどのように役立つかを探ります。

C#(シーシャープ)を使ってWord文書を操作する方法;

  1. 新しいVisual Studioプロジェクトを作成する。

  2. Word文書を読むために必要なライブラリをセットアップする。

  3. Word文書を操作するには、既存のファイルを読み込むか、新しいファイルを作成します。

  4. 文書データを編集し、ファイルを解析する。

  5. 作成されたオブジェクトをすべて取り除く。

マイクロソフト・インターロップとは

C# または VB.NET で書かれたプログラムは、Microsoft Word の Office 相互運用性を使用して、Word ドキュメント (DOC、DOCX、および RTF) を作成または開くことができます。 しかし、プロジェクトで使用する場合、多くの欠点がある。

この記事では、C# または VB.NET から Microsoft Office Interop (Word Automation) を使用する際に発生する可能性のある一般的な問題について説明します。

例えば:

  • ワードオートメーションに必要なすべてのクライアントPCは、Microsoft Wordのライセンスが必要です。
  • すべてのクライアントのPCに、同じバージョンのMicrosoft Wordがインストールされている必要があります。
  • Wordは、オートメーションを使用する際、バックグラウンドでさまざまなファイルやDLLをロードするために数メガバイトのRAMを使用する。
  • Microsoft Word APIは、COMオブジェクトを介してアクセスされる。 マネージドコードからCOMオブジェクトを呼び出す場合、型変換、COMラッパーの必要性、.NETフレームワークとの統合性の低さなどの問題が発生する可能性があります。

Visual Studioで新しいプロジェクトを作成

Interopライブラリを使用する前に、Visual Studioを起動し、.NETプロジェクトを作成する必要があります。 Visual Studioはどのバージョンとも互換性があるが、最新のものをお勧めする。 ニーズに応じて、プロジェクト・テンプレートを開発することも、Windowsフォームに似たアプリケーションを開発することもできます。 今回は簡単のため、コンソール・アプリケーションを使うことにする。

C#を使用してWordドキュメントを操作する方法: 図1 - 新しいVisual Studioプロジェクトの作成

プロジェクトの詳細を設定する

次に、プロジェクトの場所と名前を記入する。

C#を使用してWordドキュメントを操作する方法: 図2 - 新しいVSプロジェクトの設定

.NETフレームワークを使った新しいプロジェクトファイルの作成

フレームワークのドロップダウンメニューを使用して、.NET Frameworkを選択できます。 このプロジェクトには.NETフレームワーク4.7が使用される。 次のアクションは、「作成」ボタンを押すことです。

アプリケーションがソリューションを生成した後、Program.csファイルにアクセスしてコードを入力し、プログラムをビルドまたは実行することができます。

C#を使用してWord文書を操作する方法: 図3 - 新しい.NETプロジェクト.csファイル

Microsoft.Office.Interop.Word ライブラリが追加されたので、コードをテストできます。

インターロップライブラリのインストール

次の修復には、Interopライブラリのインストールが必要だ。 NuGetパッケージ・マネージャ・コンソールで以下のコマンドを入力してください:

:InstallCmd: Install-Package Microsoft.Office.Interop.Word

C#を使用してWordドキュメントを操作する方法: 図4 - IronXLライブラリをインストールするには、パッケージ マネージャー コンソールを使用して、指定されたコマンドを入力します: Install-Package IronXL.Excel

Interop "パッケージを見つけるもう一つの方法は、NuGet Package Managerを使うことです。 Interopに関連するすべてのNuGetパッケージの中から、必要なパッケージを選択してダウンロードすることができます。

C#を使用してWordドキュメントを操作する方法: 図5 - `Microsoft.Office.Interop.Word`ライブラリを選択

必要なライブラリをすべてインストールしたら、DOCXファイルの編集を開始できます。

Interopを使用して既存のWord文書を操作する

Microsoft Word を使用するには、最初に Microsoft.Office.Interop.Word.Application のインスタンスを作成する必要があります。 この場合、ワード文書のやり取りが行われる。 次のステップは、先ほど作成したMicrosoft.Office.Interop.Word.ApplicationインスタンスのDocumentsプロパティを使用して新しいWordドキュメントインスタンスを作成することです。 以下のC#コードの抜粋にあるように、プログラムによってWord文書を操作することができます。

using System;
using System.Data;
using Microsoft.Office.Interop.Word;
try
{
    var WordApp = new Microsoft.Office.Interop.Word.Application();
    var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
    WordDoc.Paragraphs [1].Range.Text = "New text here...";
    WordDoc.SaveAs(@"d:/NewDemo.docx");
    WordDoc.Close();
    WordApp.Quit();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
using System;
using System.Data;
using Microsoft.Office.Interop.Word;
try
{
    var WordApp = new Microsoft.Office.Interop.Word.Application();
    var WordDoc = WordApp.Documents.Open(@"d:/Demo.docx");
    WordDoc.Paragraphs [1].Range.Text = "New text here...";
    WordDoc.SaveAs(@"d:/NewDemo.docx");
    WordDoc.Close();
    WordApp.Quit();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
Imports System
Imports System.Data
Imports Microsoft.Office.Interop.Word
Try
	Dim WordApp = New Microsoft.Office.Interop.Word.Application()
	Dim WordDoc = WordApp.Documents.Open("d:/Demo.docx")
	WordDoc.Paragraphs (1).Range.Text = "New text here..."
	WordDoc.SaveAs("d:/NewDemo.docx")
	WordDoc.Close()
	WordApp.Quit()
Catch ex As Exception
	Console.WriteLine(ex.ToString())
End Try
$vbLabelText   $csharpLabel

上記のコードでは、C#(シーシャープ)でWord文書を編集することができます。 まず、Interop が使用するワードプロセッサ用のアイテム・オブジェクトを作成します。 作成されたオブジェクトにはopenメソッドがあり、既存のWordファイル名を渡すことができる。 ファイルをドキュメント・オブジェクトに変換するのに役立ちます。

文書オブジェクトを使用することで、既存のWord文書に関連するすべてのプロセスを取得することができます。 次に、段落オブジェクトを使って、DOCXファイルで利用可能なすべてのコンテンツを取得します。 配列を使って、各段落のテキストを特定の段落に置き換えることができる。 そして、DOCXファイルとして新しいMS Word文書に保存することができる。Interopを使ってWord文書を作成することもできます。

IronXL ライブラリ (インターロップの代替)

IronXL は、Excelファイルを処理するために .NET プログラムで使用できる Microsoft Interop の代替手段です。 Microsoft InteropではInteropアセンブリを使用してExcelとやり取りする必要がありますが、IronXLではIronXL for .NET(.NET)コンテキストでExcelファイルをプログラムで操作するための、よりわかりやすく効果的で強力な方法を提供しています。

Microsoft Interopの代わりにIronXLを利用すると、次のような利点がある:

  • パフォーマンスとリソース効率:Microsoft InteropがExcelアプリケーションに依存しているのに比べ、IronXLはExcelアプリケーションに依存しないため、パフォーマンスが高く、リソースの使用量も少なくて済みます。
  • 使いやすさとシンプルさIronXLは、Microsoft Interopのような複雑な操作を必要とせず、Excelファイルの読み取り、書き込み、操作を簡素化する使いやすいAPIを提供します。
  • 互換性と依存性IronXLは、Microsoft Excelをコンピュータにインストールする必要がないため、様々なバージョンのExcelやOfficeで発生する可能性のある依存性や互換性の問題を排除します。
  • プラットフォーム非依存:特定のMicrosoft Officeバージョンと密接に関連するMicrosoft Interopとは異なり、IronXLは様々な環境やプラットフォームに対してより高い柔軟性と容易な導入を提供します。

    プログラムによってExcelファイルを操作しなければならない.NET開発者にとっては、IronXLは使いやすく、スピードが速く、サードパーティ製ソフトウェアのインストールに依存しないため、より良い選択肢となります。 しかし、IronXLとMicrosoft Interopのどちらを選択するかは、プロジェクトの特殊性、すでに存在するインフラ、ユーザーの各ライブラリに対する専門知識レベルによって左右される可能性がある。

    これらのオプションのいずれかを決定する際には、常にアプリケーションの要件を念頭に置いてください。 リンクを確認して、IronXLライブラリについて詳しく学んでください。

IronXLライブラリのインストール

IronXL ライブラリは今度のパッチに必要なので、インストールしてください。 これを完了するには、NuGetパッケージ・マネージャー・コンソールを開き、以下のコマンドを入力する:

Install-Package IronWord

WordドキュメントをC#で操作する方法: 図6 - IronXLをコンソールコマンドでインストールする

NuGetパッケージ・マネージャから "IronXL "パッケージを検索することもできます。IronXLにリンクされているすべてのNuGetパッケージのリストから、ダウンロードするパッケージを選択することができます。

Word ドキュメントを C# で操作する方法: 図 7 - `IronXL.Excel` パッケージをブラウジングでインストール

IronXLを使ったExcelドキュメントの編集

わずか数行のコードで、データを.XLSXまたは.XLS形式にエクスポートできます。 次のソースコードの例は、Excelファイルから単純な表形式にデータをエクスポートする方法を示しています:

var workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx");
WorkSheet ws = workbook.GetWorkSheet("Sheet1");
string address_val = ws ["A1"].ToString();
console.writeline(address_val);
ws ["A2"].Value = "Hello World";
workbook.SaveAs("export.xlsx");
//or
workbook.SaveAs("export.xls");
//or
workbook.WorkSheets [0].SaveAs("export.xls");
var workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx");
WorkSheet ws = workbook.GetWorkSheet("Sheet1");
string address_val = ws ["A1"].ToString();
console.writeline(address_val);
ws ["A2"].Value = "Hello World";
workbook.SaveAs("export.xlsx");
//or
workbook.SaveAs("export.xls");
//or
workbook.WorkSheets [0].SaveAs("export.xls");
Dim workbook = IronXL.WorkBook.LoadExcel("Demo file.xlsx")
Dim ws As WorkSheet = workbook.GetWorkSheet("Sheet1")
Dim address_val As String = ws ("A1").ToString()
console.writeline(address_val)
ws ("A2").Value = "Hello World"
workbook.SaveAs("export.xlsx")
'or
workbook.SaveAs("export.xls")
'or
workbook.WorkSheets (0).SaveAs("export.xls")
$vbLabelText   $csharpLabel

前の例では、LoadExcel 関数を呼び出すことによって既に存在するExcelファイルを読み込みます。この関数はファイルパスと名前の引数を取ります。 Workbook オブジェクトへのファイルのインポートが完了しました。 ExcelワークシートはGetWorkSheetを使用して読み込まれ、それによりシート名を使用してワークシートを読み込むことができます。 その後、エクセルのアドレスを使って値を読み取る。 Excelファイルの読み取りについて詳しくは、こちらをクリックしてください。

同じエクセルのURLを利用することで、エクセルシートの値を変更することができる。 Excelドキュメントは、'Workbook'オブジェクトが提供するSaveAs関数を利用して、XLSXまたはXLSファイルとして保存できます。 このプロセスにより、ファイル全体が選択したフォーマットで保存される。

C#を使用してWordドキュメントを操作する方法: 図8 - コンソール出力

さらに、エクセルのワークシートのインデックス値を利用したり、名前で参照したりすることで、特定のワークシートを選択することができる。 次に、SaveAsオプションを使用して、Excelスプレッドシートからデータを別のファイルにエクスポートできます。 このリンクをクリックして、Excelファイルの書式設定とエクスポートについて詳しく知ってください。

結論

最も人気のあるExcel用アドオンの一つはIronXLです。 追加の外部ライブラリに依存しない。 マイクロソフト・エクセルをインストールする必要はない。 多くのチャンネルを通じて運営されている。 これは、Word文書を編集するために余分なライブラリを使ってファイルを解析しなければならないInteropライブラリとは対照的である。

Microsoft Excelドキュメントを利用したあらゆるプログラミング・プロセスに対する完全なソリューションがIronXLです。 計算、文字列や数値の並べ替え、枝刈り、追加、検索と置換、マージとアンマージ、ファイル保存など、利用可能な操作は数多い。 表計算データを検証できるだけでなく、セルデータの新しい形を構築することもできる。 ファイルの読み書きが容易になり、エクセルのデータも扱える。

IronXLが最初にリリースされたとき、価格は$749でした。 また、1年間のサブスクリプション料金を支払うことで、ソフトウェアのアップデートとサポートを受けることもできる。 IronXLは有料で、不正な再配布に対するセキュリティを提供します。 IronXLライセンスのページに移動します。 Iron Software製品について詳しくはこちらをご覧ください。

リーガン・パン
ソフトウェアエンジニア
レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
C#でWordファイルを読み取る方法
次へ >
C#でWordドキュメントを作成する方法