QA@IT

デフォルトで作成した印刷用のExcelのテンプレートの利用方法について

2709 PV

デフォルトで作成した印刷用のexcelをvisual studio2012のプロジェクト上に取り込んで、このexcelのテンプレートに印刷するための情報を書き込みたいのですが、excelを読み込むためにvs2012で作ったプロジェクトのパスは自動でパスをとってくるのにどのようにかけばよいのでしょうか。宜しくお願いします。C#とWindows8を利用しています。
例えば、デスクトップのパスを取るために、System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)とあると思うのですが、こんな感じで取れたらいいなと思っています。わからないのでお願いします。

回答

今一つハッキリとした利用イメージがわかりませんが、

exeファイルと同じ場所にあるxlsファイル/xltファイルが使いたいので実行ファイルパスが欲しいという事でしょうか?
(「vs2012で作ったプロジェクトのパス」という表現だと開発作業をしているディレクトリの意味になってしまいます。)

プロジェクト上に取り込んだあとどうしたのか書かれていませんが、exeファイルと同じ場所に出力されるようになっていると思って話を進めます(「出力ディレクトリにコピー」プロパティがコピーするようになっていますか?)

exeファイルや実行中のコードの場所の取り方はいろいろありますが、

var path1 = System.Reflection.Assembly.GetEntryAssembly().Location;
var path2 = Application.ExecutablePath;

var path3 = System.Reflection.Assembly.GetExecutingAssembly().Location;

あたりが良く使われると思います。
ただしGetExecutingAssemblyに関しては実行中のアセンブリのパスなので、クラスライブラリなどから呼び出した場合はexeファイルのパスではなくてdllファイルのパスになります。


プロジェクトへの取り込み方やビルドアクションの設定よっては時にリソースファイルとして登録することもできます。
この場合は取得方法が変わってきます。

http://msdn.microsoft.com/ja-jp/library/7k989cfy(v=vs.90).aspx

編集 履歴 (1)
  • 連絡が遅くなり、すいません。解決できました。ありがとうございます。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。