• 締切済み

ActiveXobjectが作成できない

こんにちは。 初めて投稿します。 現在、JavaScriptでエクセルファイルを作成するWEBプログラムを開発中です。 全くの初心者なので、ネットでどなたかが紹介していたコードを参考にできるかどうか実験中です。 自分のPCでは動くのですが、サーバーに上げると var fso = new ActiveXObject('Scripting.FileSystemObject'); のところで 「オートメーション サーバーはオブジェクトを作成できません。」 というエラーが発生します。 セキュリティの問題かと思い設定を変更したりしましたが、変化なしです。 サーバーにはMicroSoft Officeは入っていません。 でも、JavaScriptならクライアント側の環境を利用できるかなと思ったのですが… 根本的にこの考え方が間違っているんですかね? もし、何か方法があれば教えていただければうれしいです。 <script type="text/javascript"> //エクセルの起動 function withExcel(visible, func) { var excel = new ActiveXObject("Excel.Application"); excel.Visible = visible; excel.DisplayAlerts = false; try { func(excel); } finally { excel.Quit(); } } function withNewWorkbook(filename, visible, func) { withExcel(visible, function (excel) { var workbook = excel.Workbooks.Add(); try { try { func(workbook); } finally { workbook.SaveAs(filename); } } finally { workbook.Close(); } }); } function test() { var fso = new ActiveXObject('Scripting.FileSystemObject'); withNewWorkbook(fso.getAbsolutePathName("エクセルテスト.xls"), false, function (workbook) { var worksheet = workbook.Worksheets(1); worksheet.Cells(1, 1).value = "テストです!!"; } ); </script> <body> <form id="form1" runat="server"> <div> <asp:Label ID="Label1" runat="server" Text="エクセルのテストです!"></asp:Label> <input type="button" value="ボタン1" onclick="test()"/><br/> </div> </form> </body>

みんなの回答

  • q-ue
  • ベストアンサー率75% (12/16)
回答No.1

使用しているIEのバージョンは何ですか? IE9以降では、ネットワーク上でActiveXObjectを利用できないようです。 http://msdn.microsoft.com/en-us/library/ie/7sw4ddf8(v=vs.94).aspx 文書を互換モードに変更すれば、利用できるかもしれません。 http://msdn.microsoft.com/ja-jp/library/cc288325.aspx それが無理なら、ローカルにHTMLを保存してもらうなど、考え方を改める必要があります。

関連するQ&A

専門家に質問してみよう