.netのオープンソースfileformat.wordsをインストールし、C#プログラムでDocxファイルを読み取る方法を学びます。このAPIは、単語ファイルビューアを構築する方法を提供します。

C#でdocxファイルを開くにはどうすればよいですか

概要

ファイルの作成と操作を非常に扱うビジネスソフトウェアを構築するのは簡単ではありません。時間と男の時間は重要な要素ですが、関連するサードパーティライブラリを選択することは、開発段階で重要な役割を果たします。したがって、プログラムでWordファイルを操作するための幅広い方法を提供するオープンソース.NETライブラリを見てみましょう。このAPIでは、単語ファイルを作成/編集できるだけでなく、ビジネスドキュメント/Docxファイルを読み取ることもできます。 fileformat.wordsについて話しているのは、プログラムで単語ドキュメントを処理するために必要な機能の完全なパッケージです。ただし、このブログ投稿では質問に答えます(つまり、 c#? でdocxファイルを開くにはどうすればよいですか)。さらに、この記事の終わりまでにワードファイルリーダーを構築できるようになります。 このガイドでは、次のポイントをカバーします。

ワードファイルビューア - APIインストール

このリンクにアクセスして、インストールプロセスを詳細に通過してください。それ以外の場合は、nugetパッケージを使用してインストールできるか、Nugetパッケージマネージャーで次のコマンドを実行してもインストールできるかどうかにかかわらず、インストールは非常に簡単です。

Install-Package FileFormat.Words

C#でdocxファイルを開くにはどうすればよいですか

このオープンソース.NET APIがインストールされたら、すぐにコードの書き込みを開始できます。ビジネスソフトウェアの単語ファイルリーダーコンポーネントを作成しましょう。 Docx/Docsファイルを読み取るための複数のメソッドとプロパティがありますが、いくつかの顕著なメソッド/プロパティを使用します。 次の手順とコードスニペットに従うことができます。

  • Documentクラスのインスタンスを初期化し、Docx/Docsファイルをロードします。
  • ボディクラスのオブジェクトをインスタンス化します。
  • ドキュメント内のテーブルの総数を返すgetDocumentTables.count()メソッドを呼び出します。
    • getDocumentTablesプロパティがテーブルプロパティを返します。
    • 既存のテーブルヘッダープロパティがテーブルヘッダーを返します。
    • numberofrowsプロパティを呼び出して、テーブルの行にアクセスします。
    • numberofcolumnsプロパティを使用して、列の数を取得します。
    • numberofcellsプロパティを使用して、セルの数にアクセスします。
    • Tableborderプロパティは、ボーダースタイルを読むために使用されます。
    • テーブルポジションプロパティを使用して、テーブルの位置を取得します。
    • extractimagesfromdocumentメソッドを呼び出して、すべての画像をWordドキュメントから取得します。
    • getParagraphsメソッドを呼び出して、すべてのドキュメント段落を取得します。
    • linesspacingプロパティは、線間の間隔を知るために使用されます。
    • インデントプロパティは、インデントの価値を知るために使用されます。
    • テキストプロパティを呼び出して、段落のテキストを取得します。
using FileFormat.Words;
using FileFormat.Words.Table;
namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // Initialize an instance of the Document class and load the Docx/Docs file. 
            using (Document doc1 = new Document("/Docs.docx"))
            {
                // Instantiate an object of the Body class.
                Body body1 = new Body(doc1);
                // Invoke the getDocumentTables method that returns the total number of tables in a document.
                Console.WriteLine("Total Number of Tables " + body1.getDocumentTables.Count());
                int i = 0;
                // The getDocumentTables property returns the table properties.
                foreach (Table props in body1.getDocumentTables)
                {
                    // The ExistingTableHeaders property returns the table headers.
                    foreach (string tableHeader in props.ExistingTableHeaders)
                    {
                        i++;
                        Console.WriteLine("Header"+i+": "+tableHeader);
                    }
                    // Call NumberOfRows property to access the table rows.
                    Console.WriteLine("Number of rows "+props.NumberOfRows);
                    // Use NumberOfColumns property to fetch number of columns.
                    Console.WriteLine("Number of columns " + props.NumberOfColumns);
                    // Access the number of cells using NumberOfCells property.
                    Console.WriteLine("Number of cells " + props.NumberOfCells);
                    Console.WriteLine("Cell width " + props.CellWidth);
                    // The TableBorder property is used to read the border style.
                    Console.WriteLine("Border style " + props.TableBorder);
                    // Use the TablePosition property to get the position of the table.
                    Console.WriteLine("Table position " + props.TablePosition);
                    Console.WriteLine(" ");
                }

                // Invoke the ExtractImagesFromDocument method to get all the images from a Word document.
                List<Stream> imageParts = Image.ExtractImagesFromDocument(doc1);
                int imageCount = imageParts.Count;
                Console.WriteLine($"Total number of images: {imageCount}");
                // Call the GetParagraphs method to retrieve all the document paragraphs.
                List<Paragraph> paras = body1.GetParagraphs();

                Console.WriteLine("The number of Paragraphs " + paras.Count());
                foreach (Paragraph p in paras)
                {
                    // The LinesSpacing property is used to know the spacing between the lines.
                    Console.WriteLine("Line spacing "+p.LinesSpacing);
                    // The Indent property is used to know the value of indentation.
                    Console.WriteLine("Indent value "+p.Indent);
                    // Get the text of the paragraph by calling the Text property.
                    Console.WriteLine(p.Text);
                }

            }

        }

    }
}

上記のコードスニペットは、1つの段落、1つのテーブル、画像を含む単語ファイルを読み取ります。ただし、以下の画像に出力を見ることができます。

単語ファイルリーダー

結論

ここでこのブログ投稿を終了しています。質問に対する答えがあることを願っています(つまり、 c#? でdocxファイルを開くにはどうすればよいですか?)。さらに、既存のWordドキュメントをプログラムで読み取るコードスニペットを通過しました。これで、 ワードファイルビューアー のように機能するモジュールを簡単に構築できます。さらに、fileformat.words for .netドキュメントにアクセスすることを忘れないでください。 最後に、fileformat.comは、他のトピックに関するブログ投稿を書き続けています。さらに、FacebookLinkedInTwitterなど、ソーシャルメディアプラットフォームでフォローできます。

貢献

.netのfileformat.wordsはオープンソースプロジェクトであり、githubで利用可能です。したがって、コミュニティからの貢献は大歓迎です。

質問する

フォーラムでの質問や質問についてお知らせください。

よくある質問 - FAQS

単語なしでdocxファイルを開くにはどうすればよいですか? このオープンソース.NETライブラリFileFormat.Wordsを使用して、Docx/Docsファイルを開くことができます。さらに、このライブラリを使用して、ビジネスアプリケーション用のWord File Readerモジュールを構築できます。

{.wp-block-heading}も参照してください