ツールがこれを行うのに役立つとは思えません。そのツールが存在する場合、結果のC#コードはかなり悪いものになると思います。Excelの力の1つは、非常に柔軟なプログラミングスタイルを可能にすることです。欠点は、結果として得られるコードの構造が非常に少ないことです。これにより、人間とマシンの両方にとって、追跡が困難になります。さらに、ロジックは、Excelの数式からVBAマクロまで、複数の形式をとることができ、問題が複雑になります。
対照的に、C#は、非常に特殊な責任を持つクラスの観点から世界を見る傾向があります。プログラムは基本的に、クラス間でのメッセージの受け渡しを調整して、クラスが「互いに話し合い」、協力して作業を完了できるようにします。
その文脈では、せいぜい、翻訳ツールがいくつかの不快なC#手順を生成することを期待します。結局、スプレッドシート(VBAなし)は、セル内に配置されてチェーン化された一連の関数であり、機能の一部を所有する意味のあるクラス/エンティティを抽出するための十分な構造が存在しません。
さらに、このアプリケーションを再考することはチャンスであると私は主張します。Webアプリは、Excelができないことを簡単に実行でき、その逆も可能です。「一言一句」の厳密な翻訳ではなく、アプリケーションの精神を維持することに重点を置きますが、元のExcelアプリケーションについてあまり考えずに設計します。
Excelアプリケーションを存在させることの利点は、概念実証がすでにあることです。コードを変換しようとする代わりに、他の計算フィールドに影響を与えるすべての入力ポイントを追跡し(おそらく監査を使用して)、何に影響を与えるかをリスト/図化します(単純なバブルと矢印の図を使用します)。そして、ユーザーが何をしようとしているのか、そして「エンティティ」の観点から何が起こっているのかをわかりやすい英語で説明しようとします。たとえば、ではなく、=A2*(1-A3)
「製品の正味コストはそのコスト時間(1-割引率)」と言います。そして代わりに=SUM(A5:A32)
、「ユーザーは、注文した製品のコストの概要を求めています。これには、注文の概要を表示できるように、注文の合計コストが表示されます」。ドメインの説明を適切な名前とユースケースで抽出できれば、開発者は、必要なプラットフォームで、これらの要件をサポートする最良のアプリケーションを作成するのに役立ちます。