
いつも参考にさせていただいております。
現在、aspで作成したweb環境を運用しております。
その中で抽出したデータをExcelに出力する処理がありますが、これを以下の方法で行っております。
====================================
response.buffer = true
response.ContentType = "application/vnd.ms-excel"
response.AddHeader "content-disposition", "inline; filename=dynamic.xls"
~
response.flush
response.end
====================================
ただ、「Excel2013」であることから、出力されたExcelを開くたびにバージョン不一致の警告(ファイル形式と拡張子が一致しません)が表示されて不便です。
よって、Excel出力をExcelオブジェクトを用いた方法に変更しようと考えております。
====================================
'ファイルシステムオブジェクト生成
Set oFs = Server.CreateObject("Scripting.FileSystemObject")
'テンポラリファイル名取得
sFileName = Split(oFs.GetTempName, ".")
'エクセルファイル名にする
sXlsName = sFileName(0) & ".xls"
'テンプレートが保存されているフォルダの物理パスを取得
sPath = oFs.GetFolder(Server.MapPath("/hogehoge/")).ParentFolder
'エクセルのオブジェクトを生成
Set oXls = Server.CreateObject("Excel.Application")
'エクセルのテンプレートファイルを開く
Set oTmp = oXls.Workbooks.Open(sPath & "\temlate\template.xls")
~
====================================
ここからが質問です。
Excelオブジェクト作成時、エラーになってオブジェクトの作成が失敗します。
====================================
【オブジェクト作成を「Server.CreateObject」で行った場合】
Set oXls = Server.CreateObject("Excel.Application")
⇒ 以下のエラーが表示されます。
Server オブジェクト エラー 'ASP 0177 : 80080005'
Server.CreateObject に失敗しました
【オブジェクト作成を「CreateObject」で行った場合】
Set oXls = CreateObject("Excel.Application")
⇒ 以下のエラーが表示されます。
Microsoft VBScript 実行時エラー エラー '800a01ad'
ActiveX コンポーネントはオブジェクトを作成できません。: 'Excel.Application'
====================================
いろいろなサイトを情報をもとに対応しましたが、解決の糸口が見えない状況です。
====================================
【今まで試みた対応】
(1)コンポーネントサービスの「DCOMの構成」にて、「Microsoft Excel Application」の「起動とアクティブ化のアクセス許可」に「EveryOne」を追加。
(2)以下のフォルダを用意してフォルダのアクセス許可に「EveryOne」を追加。
C:\Windows\System32\config\systemprofile\Desktop
C:\Windows\SysWOW64\config\systemprofile\Desktop
(3)オブジェクト作成時、「Excel.Application」を「Excel.Application.15」に変更。
====================================
なお、開発環境は以下となります。
====================================
【開発環境】
OS:windows 8.1 64bit
IIS:8.5
Excel:2013
その他:(1)aspを使用(.netではありません)
(2)「windows 8.1」はあくまでテスト環境です。
正常に動作することを確認後、本番環境「Win2008Server R2」に組み込む予定です。
====================================
私事ではありますが、スケジュール的に押し迫っております。
お忙しいところ申し訳ありませんが、解決方法のご教授をお願いいたします。
以上です。
No.1ベストアンサー
- 回答日時:
残念ながら、何重もの理由で、そのソリューションは成立しません。
・Excelのようなマルチスレッド未対応のオブジェクトをWebサーバで走らせると、確実に暴走するか、エラーで停止します。ExcelやAcrobatなど、何でも同じです。
・エラーが起きた後、メモリからオブジェクトが抹消されないため、あっという間にメモリリークを起こし、サーバがハングします。
・そもそも、ソフトウェアベンダは、Excelなどのアプリケーションをサーバ上で稼働させるライセンシーを認めていません。
・64biot OSのうえでレガシーASPが正常に動作する保証はありません。そもそも、32bitの2003サーバでさえ、ASPを動作させるためには多数の依存ライブラリをインストールする必要がありました。
FileSystemObjectやDictionaruObjectは間違いなく落ちます。
・Windows8.1/64bitと、Windows 2008R2サーバでは、IISのバージョンや動作スキームが完全に異なっており、32ビット依存コンポーネントのインストール状況が違います。
また、上記のセキュリティ設定も、サーバOSは根本的に異なります。
自分ならさっさと諦めて、その部分だけASPX仕様に変更し、Excel生成用のWebライセンスつき市販ライブラリを購入してカタをつけます。
Excel Creator
http://www.adv.co.jp/product/product_excelcreato …
Webサーバ上で正しいExcelデータを生成するということは、非常にコストのかかるタスクなのですよ。
それが予算の関係で不可能なら、CSVで我慢してもらうか、Office XLSXを解読して生成するか、HTMLかWell FormedなXMLを生成し、レスポンスヘッダを詐称して強引にエクセルに認識させる(要するに現在ご提示のNGな方法)かすることです。
回答になってなくて申し訳ありませんが、「やっても無駄」というお答えしかできません。
あしからず。
ご回答いただきありがとうございます。
そうですか、私がやろうとしていたことは、ある意味、非現実的なことなのですね。
別方法を含めて再検討します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Excel(エクセル) マクロの付いたExcelが開けません 3 2023/02/01 10:54
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) Excel VBAについて、 フォルダ内のファイルを全て開きたい場合、 FSOを使えば、Dirは使わ 1 2023/01/27 13:18
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
このQ&Aを見た人はこんなQ&Aも見ています
-
ASPから既存のexcelブックを開きたいです
Microsoft ASP
-
IUSR でCreateObject(Excel.Application")ができない。"
Microsoft ASP
-
ASPからEXCELに出力する
Microsoft ASP
-
-
4
CreateObject(Excel.Application")でVBScript実行時エラー"
Microsoft ASP
-
5
ASPでCSVファイルを作成しダウンロードさせる
Microsoft ASP
-
6
ASP.NETからEXCEL起動
Microsoft ASP
-
7
IIS7.5 Excel ファイルオープンエラー
Microsoft ASP
-
8
ASPからJavaScriptへの受け渡し方法は?
Microsoft ASP
-
9
ASPで画面間のパラメタ受け渡し
Microsoft ASP
-
10
String"から型'Double'への変換は無効です。 とエラーが出ます。
Visual Basic(VBA)
-
11
ASP AccessDBオープン出来ない
Microsoft ASP
-
12
【VBA】ワークブックを開く時にエラーが出る場合と出ない場合の違いは?
Excel(エクセル)
今、見られている記事はコレ!
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft 365 の購入の誘いが...
-
digital license(デジタルライ...
-
アマゾン。メルアドをそのまま...
-
添付した写真の文字、何で作っ...
-
エクセルを起動するとグレーな...
-
試用期限付きアプリの使用期間...
-
ユーザーの切り替え時にバッチ...
-
Windowsバッチファイルでリモー...
-
三菱 Got 1000
-
マイクロソフトから通知メール...
-
デュアルディスプレイでショー...
-
ExcelでのIT機器の管理方法につ...
-
SierとSESは同じ分類なんですか?
-
SHARP 複合機 BP60-C26のアドレ...
-
プリンタドライバを自動インス...
-
HP 5550 printer のインク残量...
-
PCを効率的にセットアップしたい
-
IT業界を志望している、March下...
-
生成AIはブラックジャックが限...
-
ドルでの集金について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【緊急】ASPでのExcel出力方法...
-
net timeコマンドでアクセスエ...
-
ファイルが開けません
-
RAID1とRAID5の信頼性について
-
アップデートができません
-
SQL接続ACCESSにPCからはODBCエ...
-
Runtime Errorについて
-
自動ログオンできなくなった…
-
クラスターエラーがあるHDD...
-
steamがダウンロードできない
-
ブルースクリーンの対処方法
-
遅延書き込みデータの紛失
-
自動転送についてお聞きします
-
「i phonenoの製造国の確認の仕...
-
ノートンアンチウィルスのアッ...
-
yourfilesoftの再生について
-
URL表示、検索結果表示時間につ...
-
IIS7.0でのCGIエラー 502
-
obj2bim.exeでコンパイルすると...
-
Firefox のjava script について
おすすめ情報