- - PR -
VSTO - Excelファイルを開いて閉じたい
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-12 13:53
お世話になっております。
VisualStadio2005,C#,VSTOともに1週間の経験しかありません。 上手く表現できていない点があるかもしれませんがご容赦ください。 今、VisualStadio2005を使ってVSTOに挑んでいます。 言語はC#です。 Webサーバ上でExcelファイルを作成します。 検索条件よりデータベースからデータを取得し 集計結果のみをExcelに出力します。 ここまでは無事に出来ました。 しかし、このブックを別のマシン(.Net Frameworkの設定をしていない)に持ち込むと 正しく表示できません。 これはアセンブリがないので当たり前なのですが、 この集計結果をアセンブリを参照できない別のマシンでも閲覧したいのです。 (ロジックは不要、結果だけを参照したいため) ここで次の作業をしてみました。 ・作成したブックを開く。 ・プロパティから_AssemblyName、_AssemblyLocationを削除 ・作成したブックを上書き保存する。 これをすると、無事別のマシンからでも閲覧できることが分りました。 そこで思いついたことが ・作成したブックを開く。 ・プロパティから_AssemblyName、_AssemblyLocationを削除 ・作成したブックを上書き保存する。 をWebサーバ上で行うことが出来れば アセンブリの必要のないブックが出来上がるのではないかということです。 このようなことが可能であるか、 可能ならばその方法に導いていただければと 思っております。 お知恵のほど、どうかよろしくお願いいたします。 | ||||||||
|
投稿日時: 2006-07-12 14:09
その別のマシンは閲覧さえできれば良いのであれば、 System.Diagnostics.Process クラスの Start メソッドで Workbook を指定して起動する。 という方法ではダメでしょうか?
データだけでレイアウト問わずであれば、CSV などに出力された方が良いかもしれません。 (これならば、Excel アプリケーションを使用せず、独自のアプリケーションで表示することが容易い) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-07-12 14:31
こんにちは。
MSDN ライブラリの Worksheet.Copy メソッド を読むと、このメソッドを使用して作成されるシートは Microsoft.Office.Interop.Excel.Worksheet なネイティブオブジェクトだと書いてあります。 また、「Before または After のいずれかを指定しなかった場合、Microsoft Office Excel はコピーされたシートを含む新しいブックを作成します。」という記述があります。 これらの仕組みを利用すれば VSTO を使ってプレーンなブックを作ることができるのではないでしょうか。 #自信がないです。仕組みを間違って覚えているかも。 _________________ 上本亮介 (ue) @ わんくま同盟 Microsoft MVP for VSTO (Jul 2008 - Jun 2009) Hello Another World! .NET 勉強会 / ヒーロー島 | ||||||||
|
投稿日時: 2006-07-12 14:34
う... そういう意味のようですね... > アセンブリ云々 思いっきり読み違えておりました。(;_ _) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-07-12 14:42
ueです。
いや、私が書いたことも本当に正しいかどうか(^^; 今検証できる環境が無いもので。 あすかさんのご要望にこたえられていると良いのですが。 _________________ 上本亮介 (ue) @ わんくま同盟 Microsoft MVP for VSTO (Jul 2008 - Jun 2009) Hello Another World! .NET 勉強会 / ヒーロー島 | ||||||||
|
投稿日時: 2006-07-12 15:48
お返事ありがとございます。
早速試してみようと思い、いろいろ試みているのですが上手くいかない点がございます。 恥ずかしながら Microsoft.Office.Interop.Excelアセンブリの入手方法を見つけられないのであります。 このアセンブリ、どこにあるのかご存知ありませんでしょうか。 追記:15:51 Microsoft Office 2003 ProfessionalはCドライブにフルインストールされています。 [ メッセージ編集済み 編集者: あすか 編集日時 2006-07-12 15:53 ] | ||||||||
|
投稿日時: 2006-07-12 16:38
PIA 関係のことでしたら、こちらをご覧になられてはいかがでしょうか?
Office 2003 プライマリ相互運用機能アセンブリをインストールして使用する おそらく、ここの記事が 1 番わかりやすいと思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-07-12 17:47
上記のURLを参考に
参照の追加にて Microsoft Excel 11.0 Object Library を登録しましたが using Microsoft.Office.Interop.Excel; を行うと エラー 1 型または名前空間名 'Interop' は名前空間 'Microsoft.Office' に存在しません。アセンブリ参照が不足しています。 が出てしまいます。 何か過去に似たような事例を体験された方はいませんでしょうか。 |