
お世話になります。
Windows Vista Business 上のIISで、Excelファイルを読み込む処理を書いたのですが、Excelファイルを読み込む処理でエラーになってしまいます。
下記がソースです。
<%
On Error Resume Next
fileName = "C:\test.xls"
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
'ここでエラーが発生する
Set objWorkbook = objExcel.Workbooks.Open (fileName)
'この処理で発生したエラーの内容を出力する
Response.Write Err.Description & "<br />"
Err.Clear
objExcel.Quit
%>
これをWebサーバに保存し、実行すると、ブラウザ上で下記が出力されます(「Response.Write Err.Description & "<br />"」で出力される内容です)。
------------------------------------------------------------
ファイル 'C:\test.xls' にアクセスできません。次のいずれかの理由が考えられます。 ? ファイル名またはパスが存在しません。 ? ファイルが他のプログラムによって使用されています。 ? 保存しようとしているブックと同じ名前のブックが現在開かれています。
------------------------------------------------------------
もちろん、ファイルは存在しますし、Excelが起動していない状態でもエラーとなってしまいます。
Windows XPのIISでは、Excelの読み込みができていました。
ここで質問する前にいろいろ調べたのですが、Webサーバ上でExcelを起動すること(WordやExcelをcomオートメーションで起動すること)が、非推奨だったようですね。
そこで、知りたいことは下記の通りです。
1.VistaのIIS上でExcelを起動する術は、もはやないのか(ExcelをWebサーバ上で動作させる非推奨なプログラムを動かせなくした、など)。
2.読み込ませるExcelのファイルに適切な権限を与えればよいのか。
3.IIS7で作成したWebサイトの設定(アプリケーションプールや物理パス資格情報など)を適切な値にすればよいのか。
以上、よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
セキュリティ関連で C:\Test.xlsに IISのアカウントがアクセスできないのでは?
その ASPページと同じフォルダーに Test.xls を置いておいて
fileName = Server.MapPath( "./Test.xls" )
として与えてやったほうがいいのかも ・・・
この回答への補足
fileName = Server.MapPath("./test.xls")として試しましたが、同じ結果でした。
IISのアカウントについてですが、IIS7で「物理パス資格情報」の設定項目について、管理者権限を持つアカウントで試しています。それでもExcelファイルを開けませんでした。
ファイルの存在を確認するために、下記プログラムを実行しました。
<%
fileName = Server.MapPath("./test.xls")
Set objFso = Server.CreateObject("Scripting.FileSystemObject")
If objFso.FileExists(fileName) Then
Response.Write "ファイルが存在します<br />"
Else
Response.Write "ファイルが存在しません<br />"
End If
Set objFso = Nothing
%>
すると、ブラウザ上に「ファイルが存在します」と表示されました。
また、プログラムでファイルを開けることを確認するために、下記プログラムを実行しました。
<%
fileName = Server.MapPath("./test.xls")
Set objFile = objFso.OpenTextFile(fileName)
If Err.Number = 0 Then
Response.Write "ファイルオープンに成功しました<br />"
Else
Response.Write "ファイルオープンに失敗しました<br />"
End If
objFile.Close
Set objFile = Nothing
%>
すると、ブラウザ上に「ファイルオープンに成功しました」と表示されました。
ご回答ありがとうございます。
Excelのファイルを開き、そのファイルにデータを書き込みたいのですが、VistaのIISで動くASPでできないようであれば、諦めようと考えています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
html上で、バッチやexeファイル...
-
jspのエラーが修正できません。
-
複数のパソコン間のDir関数につ...
-
*.asp の拡張子名がついたht...
-
vbsかバッチファイルでmp3を再...
-
GUIアプリをコマンドラインで使...
-
VBでShell○なのにShellExecute×
-
Eclipseで、プロジェクト名のと...
-
正しいURL指定しているにもかか...
-
「ワークスペースをビルド中」...
-
tomcat起動時エラー
-
Eclipse・プロジェクトで、フォ...
-
classファイルについて
-
JSPのクラスをコンパイルできな...
-
split関数で区切り文字がない場合
-
org.xml.sax.SAXParseException...
-
eclipseでのsvn認証エラー回避方法
-
LaTeXでのアンダーバーの入力
-
タグが閉じてないというエラー...
-
eclipseのショトカットキー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
html上で、バッチやexeファイル...
-
system.mdwを見つけることが出...
-
jspのエラーが修正できません。
-
*.asp の拡張子名がついたht...
-
Access VBAよりシート名を取得...
-
GUIアプリをコマンドラインで使...
-
EXE間で同期をとりながらデータ...
-
VBAで作成したマクロをデスクト...
-
VBA Application visibleの...
-
exeファイルが実行中かどうか、...
-
EXCELバッチコマンド起動...
-
別のAccessファイルのフォーム...
-
HTMLでサーバーに・・・
-
PC 遅いと感じています。
-
量子化学計算ソフト GAMESS の...
-
内部プログラムエラーになりました
-
サーブレット
-
VB2008によるOCX作成、またはHT...
-
VB5が起動しない
-
エラー この変数は宣言されて...
おすすめ情報