- PR -

ASP.NET のエクセル操作でエクセルが表示しなくなる

投稿者投稿内容
べんとろえだ
会議室デビュー日: 2006/12/08
投稿数: 10
投稿日時: 2006-12-08 14:15
はじめて質問させていただきます。

ASP.NET で VB 側でエクセルの作成を以下のように行っているのですが、
作成したエクセルファイルが表示できなくなってしまいます。
原因などお分かりでしたらよろしくご教示くださいませ。

※私自身、VB等でのエクセル操作等は問題なくできるレベルなのですが、
.NET系 をはじめてまもなく、まだあまりわかっていないので
用語等おかしいかもしれません・・・。

<環境>
Windows XP SP2
MS Visual Studio 2005
Microsoft Excel 2000
クライアントサイド : ASP.NET
サーバサイド : VB.net
<処理>
※エクセルにかかわる処理以外は省略しています。
xlApp = CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.Add("c:\tameshi.xls")
xlSheet = xlBook.Worksheets("一覧")

xlApp.DisplayAlerts = False
xlApp.Visible = false ' addなので不要なはずだが一応・・・

' データ行の表示
Using db As DbConnection = factory.CreateConnection()
Do While reader.Read
strTmp = Trim(reader.Item("TID").ToString)
Loop
End Using

xlBook.SaveAs("c:\tameshi_data.xls")
xlBook.Close()

xlApp.Quit()

xlSheet = Nothing
xlBook = Nothing
xlApp = Nothing

<現象>
・作成されたエクセルを Windows Explorer から起動すると、
エクセルのタイトルバー(一番上の緑の枠)のみ
表示され中身が見えない。(別ウィンドウが透けて見える)
・Visual Studio 起動中は、実行中でも終了させても見えない。
・Visual Studio を終了させると問題なく見える。

足りない情報はご指摘くださいませ。
どうぞよろしくお願い致します。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-12-08 14:25
ココはもう見ましたか?
べんとろえだ
会議室デビュー日: 2006/12/08
投稿数: 10
投稿日時: 2006-12-08 14:36
ありがとうございます!
見てみましたが、プロセスが残る、といったような記事は見つかりましたが、表示自体がおかしくなる記事は見つけられませんでした。
どせい
大ベテラン
会議室デビュー日: 2006/10/25
投稿数: 145
投稿日時: 2006-12-08 14:48
引用:

べんとろえださんの書き込み (2006-12-08 14:15) より:
<現象>
・作成されたエクセルを Windows Explorer から起動すると、
エクセルのタイトルバー(一番上の緑の枠)のみ
表示され中身が見えない。(別ウィンドウが透けて見える)
・Visual Studio 起動中は、実行中でも終了させても見えない。
・Visual Studio を終了させると問題なく見える。


Excel2000だし、これの現象と似てないか?
http://support.microsoft.com/kb/417245/ja
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-08 14:57
引用:

べんとろえださんの書き込み (2006-12-08 14:15) より:

.NET系 をはじめてまもなく、まだあまりわかっていないので用語等おかしいかもしれません・・・。

引用:

<環境>
Windows XP SP2
MS Visual Studio 2005
Microsoft Excel 2000
クライアントサイド : ASP.NET
サーバサイド : VB.net


クライアント サイド : ASP.NET?
サーバーサイド : VB.NET?
ASP.NET はテクノロジで、VB.NET は言語だと思いますし、内容も誤っていると思います。

引用:

べんとろえださんの書き込み (2006-12-08 14:36) より:

見てみましたが、プロセスが残る、といったような記事は見つかりましたが、表示自体がおかしくなる記事は見つけられませんでした。


ただし、怖いことをやっているのは事実ですよ。

引用:

xlApp = CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.Add("c:\tameshi.xls")
xlSheet = xlBook.Worksheets("一覧")


ここで、COM ラッパーオブジェクト参照の取り忘れがあります。

引用:

xlSheet = Nothing
xlBook = Nothing
xlApp = Nothing


GC に頼る前に、ReleaseComObject メソッドで参照カウントを解放しましょう。
それと、ASP.NET で Office PIA を利用するのは、いろんな意味で危険であると言っておきます。

引用:

・作成されたエクセルを Windows Explorer から起動すると、
エクセルのタイトルバー(一番上の緑の枠)のみ
表示され中身が見えない。(別ウィンドウが透けて見える)


確認ですが、Internet Explorer ではないのですか?
Internet Explorer であれば、未記入さんのリンク先そのものの可能性が高いです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
べんとろえだ
会議室デビュー日: 2006/12/08
投稿数: 10
投稿日時: 2006-12-08 15:12
未記入さん>
若干操作は違いますが(最初にInternetExplorerでは表示していない)、.NET での操作がInternetExplorerで表示したのと同じことになっているのかもしれません。

じゃんぬねっとさん>
今回、何の勉強時間もないまま既存のソースをまねて作っているので全然分かってないですね・・・。エクセル操作くらい簡単、と思っていたのですが・・・。
(実際操作は簡単ですが、仰る様に .NET での操作は危険らしいですし、こういった問題もあって進みません・・・)

みなさんが書いていただいた内容を参考に、もう少し試してみます。
ありがとうございました!
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-08 15:27
引用:

べんとろえださんの書き込み (2006-12-08 15:12) より:

今回、何の勉強時間もないまま既存のソースをまねて作っているので全然分かってないですね・・・。エクセル操作くらい簡単、と思っていたのですが・・・。
(実際操作は簡単ですが、仰る様に .NET での操作は危険らしいですし、こういった問題もあって進みません・・・)

引用:

私自身、VB等でのエクセル操作等は問題なくできるレベルなのですが、


とのことですので、.NET からマクロを起動し、マクロから実行してみてはいかがでしょうか?
ただ、VBA も Office PIA からの操作も基本は同じハズですけどね。

この方法の利点は、今よりは安全になるという点ですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
べんとろえだ
会議室デビュー日: 2006/12/08
投稿数: 10
投稿日時: 2006-12-08 19:51
じゃんぬねっとさん>
そんな手もあるんですね!
初めての書き込みでしたが、皆さん早くて親切にお答え頂いて嬉しいです。
ありがとうございました!

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