IRONWORDの使用

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

公開済み 2023年12月24日
共有:

イントロダクション

マイクロソフトはワープロとしてのワードを作った。 当初はXenixシステム用のMulti-Tool Wordという名前で、1983年10月25日に発売された。その後のバージョンは、SCO Unix(1990)マイクロソフト・ウィンドウズ(1989)アタリST(1988)OS/2(1989)AT&T UNIX PC(1985)DOSが動作するIBM PC(1983)クラシックmacOSが動作するApple Macintosh(1985)macOS(2001)ウェブブラウザ(2010)iOS(2014)アンドロイド(2015). ワインを使えば、Linux上で旧バージョンのMicrosoft Wordを実行できる。

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

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

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

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

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

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

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

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

C#またはVB.NETで書かれたプログラムは、Word文書を作成したり開いたりできる。(DOC、DOCX、RTF)オフィス付き相互運用性Microsoft Word用。 しかし、プロジェクトで使用する場合、多くの欠点がある。

Microsoft Office Interopを使用する際によく遭遇する問題について説明します。(ワード・オートメーション)この記事では、C#(シーシャープ)またはVB.NETを使用しています。

例えば:

  • ワードオートメーションに必要なすべてのクライアント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フレームワーク. このプロジェクトには.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

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
VB   C#

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

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

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

IronXLは、Microsoft Interopに代わるもので、.NETプログラムでExcelファイルを扱うために使用することができる。 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

C#(シーシャープ)を使用してWord文書を操作する方法:図6 - コンソールコマンドを使用したIronXLのインストール

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

C#(シーシャープ)を使用してWord文書を操作する方法:図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")
VB   C#

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

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

C#(シーシャープ)を使用してWord文書を操作する方法:図8 - コンソール出力

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

結論

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

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

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

< 以前
C#でWordファイルを読み取る方法
次へ >
C#でWordドキュメントを作成する方法

準備はできましたか? バージョン: 2024.12 新発売

無料のNuGetダウンロード 総ダウンロード数: 7,878 ライセンスを表示 >