AIにプロジェクトを読ませる「Project Analyzer」がExcel/Wordファイルに対応!設計書も丸ごとMarkdown化

【アップデート】AIにプロジェクトを読ませる「Project Analyzer」がExcel/Wordファイルに対応!設計書も丸ごとMarkdown化

こんにちは!以前、ChatGPTやNotebookLMなどのAIツールに、複数ファイルからなるプロジェクトをまるごと読み込ませるための自作ライブラリ「Project Analyzer」をNuGetで公開しました。
(前回の記事:AIにソースコードを読ませるのが超快適に!プロジェクトをMarkdown化する自作ライブラリをNuGetで初公開しました

AIにソースコード全体とフォルダ構成を「1つのMarkdown形式」にまとめて渡せるツールとして、私自身も日々活用しているのですが、実際の開発現場で使っていると「ソースコードだけじゃなくて、設計書も一緒に読ませたい!」という場面が頻繁に出てきました。

そこで今回、Project Analyzerを大幅にアップデートし、ExcelファイルやWordファイルの解析にも対応しました!さらに、細かい不具合修正や便利なオプションも追加しています。


🚀 アップデートの目玉機能

1. Excel / Word ファイルからのテキスト抽出に対応!

これまでProject Analyzerは、主に .cs.js などのテキストファイル(ソースコード)の読み込みに特化していました。 しかし、実際の業務では「Excelで書かれたテーブル定義書」「Wordで書かれた要件定義書」がプロジェクトフォルダ内に混在していることも少なくありません。

今回のアップデートで、.xlsx.xls.xlsm.docx 形式のファイルを自動的に検知し、ファイル内のテキストをAIが読みやすい形式に変換してMarkdownに含めることができるようになりました。

  • Excelファイル: シートごとにデータを読み込み、AIが解釈しやすいようにカンマ区切り(CSV風)のテキストに変換して出力します。
  • Wordファイル: ドキュメント内の段落を抽出し、プレーンテキストとして出力します。
💡 プログラマ以外の方にもおすすめ!
この対応により、ソースコードが含まれない「会社のドキュメント整理用フォルダ」などを丸ごとAIに読み込ませて要約させるなど、ビジネスパーソンの方の業務効率化にも使えるツールに進化しました。

2. コードブロック出力オプションの不具合修正

Project Analyzerでは、コードの内容を折りたたみ(<details>タグ)の中と、その下のコードブロック(```)の両方に出力しています。
別のシステムやAIエージェントにAPI経由で渡す際などにコードブロックを省けるよう、「コードブロックを出力しないオプション(--no-codeblock / omitCodeBlockTicks)」を提供していましたが、これまでは「記号(```)だけが消えて、ファイルの中身自体はそのまま出力されてしまう」という不具合がありました。

その結果、折りたたみの中と外でファイルの中身が二重に出力されてしまっていたのですが、今回のアップデートでこの処理を改修しました。
オプションを有効にした際は、「記号だけでなくファイルの中身も出力しない(二重出力を回避する)」ように変更され、よりスッキリとしたクリーンなテキストとして結果を取得できるようになりました。


💻 C#コードからの使い方(おさらい)

NuGetからパッケージをインストール(またはアップデート)します。

dotnet add package ProjectAnalyzer.Core

使い方はこれまでと同様にとてもシンプルです。今回は新しく追加されたオプション omitCodeBlockTicks を使った例をご紹介します。

using ProjectAnalyzer.Core;
using ProjectAnalyzer.Core.Utils;

// 1. 設定の読み込み
var settings = SettingsLoader.Load(
    projectPath: "C:\\path\\to\\your\\project", // GitHubのURLを直接指定することも可能です
    outputPath: "", 
    outputToFile: false, // ファイル出力せずプログラム内で保持する
    omitCodeBlockTicks: true // ★新機能:コードブロック記号(```)を省略する
);

// 2. 分析処理の実行
using var analyzer = new Analyzer(settings);
AnalyzerResult result = analyzer.Analyze();

// --- 結果の利用 ---
// プロジェクトのフォルダ構造ツリー
Console.WriteLine(result.ProjectTree);

// ExcelやWordの内容も含まれたMarkdownテキスト!
foreach (var context in result.ProjectContexts)
{
    Console.WriteLine(context);
}

🔗 リンクとまとめ

いかがでしたでしょうか。
ソースコードだけでなく、仕様書やマニュアルなどのドキュメントも一括でAIのコンテキストに含められるようになったことで、AIによるコード解説やリファクタリングの精度がさらに向上するはずです。

▼ 更新したNuGetのページはこちら
https://www.nuget.org/packages/ProjectAnalyzer.Core

▼ ソースコード(GitHubリポジトリ)はこちら
https://github.com/flying-YT/ProjectAnalyzer

ご自身のプロジェクトや日々の業務で「AIに色々まとめて読ませたいな」と思ったときは、ぜひ最新版の ProjectAnalyzer を活用してみてください!

コメント

このブログの人気の投稿

Power Automateでファイル名から拡張子を取得

PowerAppsで座席表を作成する

Power AutomateでTeamsのキーワードをトリガーにする