OneNoteのテーブルは、会議のメモやデータログからクイック比較シートまで、情報を整理するのに役立ちます。OneNoteのテーブルからプログラム的にテキストを抽出する必要がある特定のケースがあります。テーブルの内容を分析したり、データベースに移動させたり、別のフォーマットに変換したりしたい場合があるかもしれません。

このガイドでは、C#を使用してOneNoteのテーブルからテキストを抽出する方法を示します。テーブル全体、単一の行、または個々のセルからテキストを取得する方法を、簡単で分かりやすい例を用いて学びます。

始めましょう。

OneNote からテーブルのテキストを抽出する理由は何ですか?

開発者は、オートメーション、報告、または他のシステムとの統合のために、OneNoteのテーブルからデータを抽出する必要があることがよくあります。以下はいくつかの実際の例です:

  • 会議の要約を構造化された報告書にエクスポートします。
  • 共有ノートから分析のために表形式のデータを読み取ります。
  • 外部システムやダッシュボードとOneNoteのテーブルを同期させます。

手動でデータをコピーする代わりに、Aspose.Note for .NETを使用すると、すべてをコードで迅速、一貫して、完全に自動化された方法で処理できます。

C# ライブラリで OneNote テーブルからテキストを抽出する

Aspose.Note for .NET は、開発者が .NET アプリケーションで OneNote ファイルを作成、読み取り、編集、および変換できる強力な API です。ページ、テキスト、画像、アウトライン、およびテーブルのような要素にアクセスするためのリッチオブジェクトモデルをサポートしています。テーブルテキスト抽出のために、OneNote ファイルを表す Document クラスと、開発者がテーブル要素を簡単に特定して抽出できるようにする GetChildNodes() などのメソッドを提供しています。

あなたは Aspose.Note for .NET releases page からそれをダウンロードするか、NuGet を使用してインストールできます。

PM> Install-Package Aspose.Note

OneNoteのテーブルからテキストを抽出する方法

Aspose.Note は、異なるレベルで OneNote ドキュメントからテキストを抽出することを可能にします。

  • 全体のテーブル
  • 特定の行
  • 個々の細胞

各ステップを順を追って見ていきましょう。

OneNoteのテーブルからテキストを抽出する方法:サンプルテーブル

サンプルテーブル

C#を使用してOneNote文書からテキストと画像を抽出する方法について詳しく学ぶには、私たちの詳細な guide on extracting content from OneNote files をご覧ください。

1. C# を使用して OneNote からテーブルのテキストを抽出する

Aspose.Note for .NETを使用して、OneNoteドキュメント内のすべての利用可能なテーブルから簡単にテキストを抽出できます。テーブルノードにアクセスし、内容を読み取り、抽出したテキストを読みやすい形式で表示するプロセスについて説明します。

OneNote 文書のテーブルからテキストを抽出するための手順は以下の通りです:

  1. .one ファイルを Document クラスを使用して読み込んでください。
  2. GetChildNodes<Table>() メソッドを使用して、すべてのテーブルノードを取得します。
  3. 各テーブルをループして、そのテキストコンテンツを抽出します。
  4. コンソールに結果を表示します。

次のコード例は、OneNote ドキュメント内のすべてのテーブルからテキストを抽出する方法を示しています。

using Aspose.Note;

// ドキュメントを Aspose.Note に読み込む。
Document document = new Document("SampleTable.one");

// テーブルノードのリストを取得します。
IList<Table> nodes = document.GetChildNodes<Table>();

// テーブルの数を設定する
int tblCount = 0;

foreach (Table table in nodes)
{
    tblCount++;
    Console.WriteLine("Table # " + tblCount);

    // Retrieve text
    string text = string.Join(Environment.NewLine,
        table.GetChildNodes<RichText>().Select(e => e.Text)) + Environment.NewLine;

    // Print text on the output screen
    Console.WriteLine(text);
}

Output

Table # 1
cell_1.1
cell_1.2
cell_1.3
cell_2.1
cell_2.2
cell_2.3

2. OneNote テーブルの特定の行からテキストを抽出する

時には、特定の行からテキストを抽出するだけで、テーブル全体を抽出する必要はありません。私たちはすべてのテーブルをループし、次に各行をループして、独立してテキストを抽出します。これは、行ごとにテーブルデータを分析または処理する必要がある場合に便利です。

テキストを行ごとに抽出するには、以下の手順に従ってください:

  1. Document クラスを使用して OneNote ファイルをロードします。
  2. テーブルノードのリストを取得します。
  3. 各テーブルをループし、その後各行をループします。
  4. 各行からテキストを抽出して表示します。

以下のコード例は、C# を使用してテーブルからテキストの行を抽出する方法を示しています:

using Aspose.Note;

// ドキュメントをAspose.Noteにロードします。
Document document = new Document("SampleTable.one");

// テーブルノードのリストを取得する
IList<Table> nodes = document.GetChildNodes<Table>();

// 行数を設定する
int rowCount = 0;

foreach (Table table in nodes)
{
    // テーブルの行を繰り返す
    foreach (TableRow row in table)
    {
        rowCount++;
        // Retrieve text
        string text = string.Join(Environment.NewLine,
            row.GetChildNodes<RichText>().Select(e => e.Text)) + Environment.NewLine;

        // Print text on the output screen
        Console.WriteLine($"Row #{rowCount}:");
        Console.WriteLine(text);
    }
}

Output

Row #1:
cell_1.1
cell_1.2
cell_1.3

Row #2:
cell_2.1
cell_2.2
cell_2.3

3. テーブルの特定のセルからテキストを抽出する

特定のセルからさらに深く掘り下げてテキストを抽出したい場合も、それが可能です。この目的のために、最小のテキスト単位、つまり各セルの内容を取得します。これは、さらなる処理やデータマッピングのためにデータ抽出に対して細かい制御が必要な場合に最適です。

以下の手順に従って、OneNoteのテーブル内の特定のセルからテキストを抽出してください:

  1. Document クラスを使用して OneNote ドキュメントをロードします。
  2. GetChildNodes<Table>() を使ってテーブルノードを取得します。
  3. 各テーブルとその行を繰り返します。
  4. GetChildNodes<TableCell>() を使用してセルノードを抽出します。
  5. 各セルからテキストを抽出して表示します。

次のコード例は、C#を使用してテーブルの行からセルのテキストを取得する方法を示しています。

using Aspose.Note;

// ドキュメントを Aspose.Note にロードします。
Document document = new Document("SampleTable.one");

// テーブルノードのリストを取得する
IList<Table> nodes = document.GetChildNodes<Table>();

foreach (Table table in nodes)
{
    // テーブルの行を繰り返す
    foreach (TableRow row in table)
    {
        // TableCell ノードのリストを取得する
        IList<TableCell> cellNodes = row.GetChildNodes<TableCell>();
        // テーブルセルを反復処理する
        foreach (TableCell cell in cellNodes)
        {
            // Retrieve text
            string text = string.Join(Environment.NewLine,
                cell.GetChildNodes<RichText>().Select(e => e.Text)) + Environment.NewLine;
            // Print text on the output screen
            Console.WriteLine(text);
        }
    }
}

Output

cell_1.1

cell_1.2

cell_1.3

cell_2.1

cell_2.2

cell_2.3

Aspose.Note for .NETを使用してテキスト抽出を行う理由は何ですか?

  • Microsoft OneNoteを利用せずに、完全にオフラインで動作します。
  • Extracts text with formatting and structure preserved.
  • すべてのテーブル要素(ヘッダー、セル、ネストされたテーブル)をサポートしています。
  • コンテンツのフィルタリングとクエリのために強力なLINQサポートを提供します。
  • 既存の .NET アプリケーションとの簡単な統合。

分析ツール、オートメーションスクリプト、またはカスタムノートコンバーターを構築しているかどうかに関わらず、Aspose.Noteは必要な柔軟性とコントロールを提供します。

あなたは、制限なしにAspose.Note for .NETを試すために、Aspose License Pageから無料の一時ライセンスを取得できます。申請するのにほんの一分しかかからず、ライブラリのすべての機能をテストすることができます。

無料追加リソース

結論

OneNoteのテーブルからテキストを抽出するのは複雑である必要はありません。Aspose.Note for .NETを使用すれば、C#コードのわずか数行で、全体のテーブル、特定の行、または個々のセルから簡単にテキストを取得できます。APIは解析、ノード管理、コンテンツの遍歴を処理し、あなたはそのデータを必要な方法で使用することに集中できます。

質問がある場合や開始するのにサポートが必要な場合は、私たちの free support forum を訪れて、Aspose.Note チームとつながってください。

FAQs

Q: OneNoteドキュメントの特定のテーブルからテキストを抽出できますか?

はい、LINQやインデックスベースの選択を使用して、特定のテーブルを抽出するためにテーブルノードをフィルタリングできます。

A: Aspose.Note for .NET は、Microsoft OneNote をインストールせずに使用できます。

いいえ、Aspose.Note for .NETは独立して動作し、Microsoft OneNoteやその他の外部ソフトウェアを必要としません。

Q: Aspose.Note for .NET はテキスト抽出中にテーブル構造を保持しますか?

はい、それはテーブルの論理構造を保持し、整然とした状態を保ちながら、テーブル全体、行、または個々のセルからコンテンツを抽出することを可能にします。

Q: OneNoteのテーブルから書式設定されたテキストを抽出できますか?

Aspose.Noteは主にプレーンテキストを抽出します。ただし、フォーマットの詳細が必要な場合は、リッチテキストオブジェクトにアクセスして処理することができます。

Q: Aspose.Note for .NETは、.NET Coreおよび.NET 6+と互換性がありますか?

はい、それは .NET Framework、.NET Core、および最新の .NET バージョンを Windows、Linux、macOS 全体でサポートしています。

See Also