※ ChatGPTを利用し、要約された質問です(原文:【緊急】ASPでのExcel出力方法について)
Excelオブジェクトの作成エラーについて
いつも参考にさせていただいております。
現在、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」に組み込む予定です。
====================================
私事ではありますが、スケジュール的に押し迫っております。
お忙しいところ申し訳ありませんが、解決方法のご教授をお願いいたします。
以上です。
お礼
ご回答いただきありがとうございます。 そうですか、私がやろうとしていたことは、ある意味、非現実的なことなのですね。 別方法を含めて再検討します。