- PR -

ASP.NET WebアプリケーションでExcelワークシートに保護をかけたい

投稿者投稿内容
アルエ
会議室デビュー日: 2005/12/02
投稿数: 14
投稿日時: 2006-02-28 21:51
引用:

Jittaさんの書き込み (2006-02-28 21:31) より:
 なぜオートメーションが推奨されないか、というところは、理解していますか?


はい、理解しております。
だからこそ、処理の大部分をExcelCreatorにやらせ、
ExcelCreatorができないところだけピンポイントでVSTOにやらせようとしています。
逆に、やりたいことがより安全・確実にできるなら、VSTOにはこだわりません。
そのようなコンポーネントがあれば、是非教えて頂きたいです。

引用:

 サーバ環境では、画面がない、ユーザが操作できない、というところが、Office 製品の目的と反しています。VSTO であれ、同じではないでしょうか。


同じなんですか?だとすれば、

引用:

アルエさんの書き込み (2006-02-27 13:34) より:

このツールはWebサーバにOfficeを直接インストールすることなく、
マネージコードでExcelファイルが操作できるものなのでしょうか?
だとしたらすばらしいですね!


この認識は間違っていますか?

私はじゃんぬねっとさんの書き込みから、VSTOを使えばWebサーバにExcelをインストールせずに済み、
なおかつじゃんぬねっとさんのサイトにある

http://jeanne.wankuma.com/tips/programing/releasecom.html

のようなコードを書かなくて済むと推測しました。
その推測が正しければ、全然同じではないと思うのですが、間違ってましたでしょうか?
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-03-01 13:46
引用:

マネージコードでExcelファイルが操作できるもの」 だと思います。(間違っているかも)



非 XML 形式の Excel ファイルをサーバ上で直接作成できるわけではありません。

(比較的一般的な作りこみの)サーバから送出されたデータを、クライアント側で動作する VSTO 拡張を仕込んだ Excel ワークシートで解釈、表示するものです。

_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#
//
// @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-03-01 19:12
引用:

アルエさんの書き込み(2006-02-28 21:51)より:

私はじゃんぬねっとさんの書き込みから、VSTOを使えばWebサーバにExcelをインストールせずに済み、
なおかつじゃんぬねっとさんのサイトにある
のようなコードを書かなくて済むと推測しました。
その推測が正しければ、全然同じではないと思うのですが、間違ってましたでしょうか?


 Windows インストール直後に、Visual Studio Team System を、VSTO のオプションを選択してインストールすると、「VSTO の機能に対応した Office 製品がインストールされていません」のようなメッセージが表示されます。このメッセージより、『WebサーバにExcelをインストールせずに済み』ということはないのではないか、と推測します

 あくまで「推測」です。この状態で オフィスプロジェクトを作成したことがないし、VSTO 単体のプロダクツではないので、VSTO だと、こういうメッセージはでないのかもしれません。

っと、要らない・・・のか?
引用:

http://www.microsoft.com/japan/msdn/vstudio/products/vsto/details/
サーバー側でのドキュメント制御

Web アプリケーションなどサーバー側で Office ドキュメントを制御したい場合に、サーバーに Office アプリケーションをインストールおよび実行することなく、ドキュメントへアクセスできるランタイムが提供されます。クライアント側で Office ドキュメントを開いた際には、データがサーバー側のドキュメントと同期されます。


 クライアント側で開くと、って書かれているなぁ。
 開発環境では要る。そこで作ったアセンブリを、Web アプリケーションとして配布するとき、配布したところでは要らない、が正解?
 でも、今やりたいことは、サーバ側で開く(加工する)、ですよね?「アセンブリの配布環境では、Office System のインストールは必要ない」と解釈すると、企業で1つ VSTO のライセンスを取って、それでドキュメントを開発、配布すれば、各クライアントには Office System のライセンスは必要ない、と解釈できません???それとも、UI のない Excel が起動するのかな???


 また、私が言っているのは COM オブジェクトの解放のことではなく、UI のことです。Excel が起動して動作する以上、
引用:

これらの製品は、対話型デスクトップおよびユーザー プロファイルを想定しており、無人実行されるように設計されたサーバーサイド コンポーネントの必要性を満たすための再入可能性やセキュリティのレベルは提供されません。


の部分が、関係してくるのではないでしょうか。

 それとも、クライアント側にそのままダウンロードさせて、それがサーバとシンクロする?


 正直、VSTO に関する情報は少なすぎます。。。よろしければ、どういうことを尋ねて、どういう回答があったのか、教えてください。「これ以上は有償になる」といわれたものがあれば、それも。内容によっては、私が持っているコミュニティでの問題解決のためにもらったインシデントを使います。

GDNJ の、似たような問題→ASP.NET(VB)からExcelの連携方法について
MSDN フォーラム→VSTOでExcelをWebサーバに置きたい。
@IT で過去にあった、Excel に関係する問題→Insider.NET 会議室 > ディレクトリ > Office > Excel/CSV
VSTO は、内部で分類を開始したところで、表に出していません。


# Spread-ML ですか

[ メッセージ編集済み 編集者: Jitta 編集日時 2006-03-01 19:13 ]
アルエ
会議室デビュー日: 2005/12/02
投稿数: 14
投稿日時: 2006-03-01 20:14
引用:

Jittaさんの書き込み (2006-03-01 19:12) より:
 正直、VSTO に関する情報は少なすぎます。。。よろしければ、どういうことを尋ねて、どういう回答があったのか、教えてください。「これ以上は有償になる」といわれたものがあれば、それも。内容によっては、私が持っているコミュニティでの問題解決のためにもらったインシデントを使います。


Jittaさん、ありがとうございます。

確かに、情報が少ないですよね。だからこそ、「実際に動かして試した結果」が欲しかったのですが、評価版が無いとあってはどうしようもありません。

前回のMicrosoftへの問い合わせでは、私の 2006-02-28 14:56 の書き込みに書いた「やりたいこと」を口頭で説明し、「VSTOでこういうことができるか?できないか?」ということしか聞いていません。
まだ回答の電話はきていないんですが、会社に開発ライセンスを1本購入してもらえるかどうかは、「WebサーバにExcelのインストールが必要か否か」にかかっている状況です。
前回の電話ではMicrosoftにそこがポイントだ、ということが伝わっていないかもしれませんので、回答がきたら重ねて質問してみようと思います。結果は追って報告させて頂きます。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-03-01 21:34
# MSDN フォーラムで質問した方が早いんじゃないかな ;-p

引用:

 開発環境では要る。そこで作ったアセンブリを、Web アプリケーションとして配布するとき、配布したところでは要らない、が正解?



前にも書きましたが、「Excel を実行する環境」には Excel のインストールが必要です。
(一部、サードパーティ製品で直接 Excel のワークブックを生成できるタイプのコンポーネントもあるはずですが)

典型的な「VSTO アプリケーション」は、要するに Word 文書や Excel のワークブックに VSTO ランタイムに依存したマネージコードを埋め込んだものです。

形態としては単なる文書ファイルですから、Web で配布するには、サーバにファイルを置くだけで事足ります。

そして、Office アプリケーションでそのファイルを読み込むと、マネージコードが実行されます。

Office 自体がマネージアプリケーションではないので、参照設定、 PIA 、VSTO のどれを使おうとも、最終的には OLE オートメションによって Office アプリケーションの操作が行われます。

クライアント側には .NET Frameowrk ランタイムに加えて、適切な Office アプリケーションがインストールされている必要があります。


_________________
// 渋木宏明 (Hiroaki SHIBUKI)
// http://hidori.jp/
// Microsoft MVP for Visual C#

[ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2006-03-01 21:40 ]

[ メッセージ編集済み 編集者: 渋木宏明(ひどり) 編集日時 2006-03-01 22:07 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-03-01 23:15
引用:

渋木宏明(ひどり)さんの書き込み (2006-03-01 21:34) より:
# MSDN フォーラムで質問した方が早いんじゃないかな ;-p


 書いているときと、投稿したときは違うので(^-^;
 とりあえず、GDNJ からこっちにもリンク張りました。MSDN だと、社員さんの目にとまるか。。。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-03-02 11:25
GDNJで似たような問題を抱えている、ひろれいと申します。
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=42371

ASP.NETを利用したシステムでExcelを利用するには、現在、
 ・COM
 ・VSTO
の2パターンが主流のようですね。

VSTOについては、実のところ、今朝から調べただけですので全くの素人です。
<参考>http://www.atmarkit.co.jp/fdotnet/special/vstodev/vstodev_01.html

私は、現在、以下のような機能を実現しようと考えています。
1.WebサーバにExcelテンプレートを置いておく。
2.クライアントからの要求により、1.のファイルをコピーして、ダウンロード用のExcelファイルを作成する。
3.2.のExcelファイルにデータを設定。
4.3.で作成したExcelファイルをクライアントにダウンロードさせる。

今回は、COMを利用しようと考えております。理由としては、
1.クライアントのOffice製品がOffice2003とは限らない。
2.VSTOを利用する場合、VSTOを別途購入しなければならない。
3.報告書をシステムで作成して、クライアントに配布するだけのため、COMを利用した方が開発工数が削減できる。
4.システムを利用するクライアントが少ない。

COMを利用するに当たっては、MSから何の保証も無いため、もちろん十分なテストは不可欠だと考えております(COMの解放)。

ただ、COMを利用するに当たり、以下の点が問題となっています。
1.サーバにインストールするOffice製品の種類<Standard、Professional>
2.システムを利用するクライアントには各種Officeがインストール済であるが、サーバにインストールするOfficeと同等のライセンスを別途取得する必要があるのか。

この2点については、現在Microsoftに確認中のため、返答があり次第、ご報告させていただこうと考えております。

ただ、同様の質問をMicrosoftの「答えてねっと」に投稿したところ、私と同じような機能を実現しているシステムのソースをMSに確認してもらったところ、何も返答が無かった、とのことでした。
<ページのリンクを貼ろうとしましたが、何故か無理でした・・・>
<2/28 22:10に「ひろれい」で投稿しています>
これが、無視されているのか、了解されているのか分かりませんが(^^

ASP.NETでExcelを利用しているシステムは結構な需要があるはずですが、みなさんどうしているのでしょうね・・・
アルエ
会議室デビュー日: 2005/12/02
投稿数: 14
投稿日時: 2006-03-02 11:50
ひろれいさん、こんにちは。

既にご存知かもしれませんが、こういう製品があります。

http://www.adv.co.jp/products/product_ExcelCreator5.htm

サーバライセンスが高いですが、ブックやシートに保護をかける必要が無ければ、COMを利用するよりリスクが少ないかもしれません。また、上記リンクの「製品の特徴2」というところを見ると、性能も良さそうです。
私の方は、ひろれいさんの1〜3の部分をこの製品を使って行い、シートに保護をかけるところだけCOMを使おうとしています。そして、COMを使用するよりもリスクの少ない方法はないか、ということでVSTOについて調べているところです。

スキルアップ/キャリアアップ(JOB@IT)