WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:Excelグラフ表示

0:[投稿] kay [2002/08/16 11:11 ][環境:WIN+IE UNIX系+OTHER]

現在Apache+PHPに挑戦中です。
サーバの、あるディレクトリに複数のcsvファイルと1つのxlsファイル
があります。

xlsファイルは、「自分の名前(ActiveWorkbook.Name)を
加工して.csvファイル名を取得し、 そのcsvファイルを読み込んで
処理し、グラフを表示する」というマクロが書かれたものです。

Web上で、ファイル名が選択されたとき、このxlsマクロによるグラフ
を表示したくて、PHPで、Content-Typeをapplication/vnd.ms-excel
として呼び出しています。 これでxlsファイルは確かに起動するので
すが、ActiveWorkbook.Nameが、起動命令をしたPHPファイル名
(download.php)になってしまいます。Content-Typeの指定に
name=でファイル名を指定してみましたが、結果は同じです。
application/octet-streamにしてみると、期待したファイル名で
ダウンロードできるので、解決できなければ、xlsファイルとcsv
ファイル両方をダウンロードして、ローカルでグラフ表示させる、
ということも考えたのですが、それもおまぬけな気がしています。

どなたか、csvファイルをマクロファイルに読み込ませてグラフ表示
という処理を実現できている方がおられましたら、方法を教えて
いただけませんでしょうか。

長文すみません。よろしくお願いします。


1:[回答] ナン [2002/08/19 08:54 ]

タイムオーバーですね。とりあえずage。
このぐらいは、できそうな気がしますが、Excelはさっぱりで...。
MS系のBBSを探して聞いてみるとか。


2:[回答] andi [2002/08/19 09:21 ]

サーバからダウンロードされたEXCELファイルが
再度、サーバ上のCSVファイルを読みに行くってことでしょうか。

どちらにせよ答えられそうにはありませんが、
問題点?を整理ってことで(^^;


3:[関連] kay [2002/08/19 19:10 ]

ナンさん、andiさん、ありがとうございます。
やりたいことは、
1.クライアント側のモニタでExcelグラフを見たい
2.さらに、できればブラウザでグラフを見たい

なのですが、確たる方法がわからないためにあれこれ道を考えてしまい、
だらだらした説明になってしまいました。

・現在トライしているのはandiさんのまとめてくださったとおり、
 サーバからダウンロードされたxlsファイルがサーバ上のcsvを
 読みに行けないか、ということです。

・現在できていることは、ホームページにボタンを2つつけて、
 xlsファイルとcsvファイルを個々にダウンロードすることです。
 2つをダウンロードした後、xlsファイルを起動すれば、マクロに
 よってcsvファイルを読み込み、グラフは表示できるので、一応
 目的の1番には合っているのですが、もっとスマートにならない
 かなと思っています。

なまじ、xlsファイルがうまく起動しそうなだけに、「もうちょっと!」と思って
あがいています。 
もしおわかりの方おられたらお願いします。 MS系の掲示板も回って
みます。 ありがとうございました。


4:[回答] のぐりん [MAIL] [2002/08/20 13:44 ]

http://www.kawabata.ksi.ne.jp/CreateExcel.asp
を参考にしてみてください。

ASPベースですが、IEのVBScript(クライアント側)上で、Excelファイルを制御する方法が載っています。
サーバ上のCSVファイルを読み込むのはPHPでも出来る(私はPHPわかりませんが、、、)と思いますので、このページの方法を応用すれば、どうにかなるのではないかと思います。


5:[回答] のぐりん [MAIL] [2002/08/20 13:56 ]

別の方法です。

ASPの方法ですが、
Response.ContentType = "application/vnd.ms-excel"
と宣言することで、IE上で、EXCELが起動します。

尚、EXCELのメニュー上に「ファイル」−「WEBページとして保存」で、HTML文が生成されますので、これにPHPのスクリプトを追記して、ContentTypeに"application/vnd.ms-excel"を指定すれば、実現できそうです。


6:[関連] kay [2002/08/21 09:42 ]

のぐりんさん、情報をありがとうございます。
自分の文章作成能力の無さがひしひしとわかって恥ずかしいのですが、
ご指摘いただいたapplication/vnd.ms-excelにより、xlsファイルは
起動できています。
そのxls内のマクロ内で、csvファイルを読み込むように作っている
のですが、csvファイル名の命名則を、「xlsファイルの拡張子をcsvに変えたもの」としています。

つまり、xlsがhttp://kayserver/data/test.xls であれば
    csvはhttp://kayserver/data/test.csv を読むようにしたいです。

このcsvファイル名を得るために、xlsでActiveWorkbook.Nameを使用
していて、私の期待では実行したxlsファイル名が出てほしいのです
が、 実際にはxlsファイルをダウンロードするよう指示したphpファイル名(download.php)が取れてしまいます。 
実験的に、download.csv というファイルを作ってdownload.phpのあるディレクトリに置いてみると、しっかり
読み込んで、ブラウザにExcelグラフが表示されるので、問題は
そのファイル名を取り込む、というところだけのようなのです。 
ややこしそうに書いてしまってすみません。

ご指摘いただいたページも現在ゆっくり読んでいます。 phpでうまく
xlsファイルが作れるようであれば、ファイル名を埋め込めるかな、と
考えています。 

情報をありがとうございました。


7:[回答] のぐりん [MAIL] [2002/08/21 18:06 ]

PHPで、サーバ上にあるCSVファイルを読み込む処理はありますか?

その読み込んだ値を、変数に格納し、それをVBScriptでExcelのセルに貼り付ければいいと思うのですが、、、

http://www.kawabata.ksi.ne.jp/CreateExcel.aspは、サーバ側の変数をExcelのセルに貼り付けるASPの例です。


8:[回答] mazda [2002/08/22 16:08 ]

現在業務でまったく同じような処理を行っています。
当方では、
webページ上からexcelファイルを開き、
マクロにてサーバー上の.phpファイルにアクセスします。
アクセスした.phpファイルでは必要なデータをタブ区切りで生成
します。(csv)その生成したデータをマクロ側で、
コピー&ペーストにてブック上に持ってくるという処理です。
まったく問題なく動作しておりますが・・・
気になったのは、
ブラウザが、ヘルパーアプリケーションを起動するのは、
マイムタイプで決まります。
これは、サーバでの設定です。
apache なら、conf/mime.types
に、
application/vnd.ms-excel    xls
がいるはずです。


9:[質問] kay [2002/08/23 14:27 ]

のぐりんさん、いつもありがとうございます。

ファイルの中を読み込む処理はPHPにありますが、それ以前に、そのCSVファイル名を取得できないという問題に直面しています。
説明が悪くてすみません。

さて、mazdaさんが、同じような処理に成功されているとのことでお聞きしたいのですが、
 マクロにてphpファイルにアクセス、ということですが、このphpファイルの名前は固定でしょうか。 また、生成する「必要なデータ」は
 具体的にはどのように取得されているのでしょうか。

私の環境での場合、phpファイルにアクセスして、そこで、所定のデータファイルの中身を読み込む、というふうに作ることになると
思うのですが、この「所定のデータファイル」の名前を指定する方法がわかりません。

差し支えない範囲でコードを教えていただけませんでしょうか。


10:[完了] kay [2002/08/23 14:36 ]

さきほど、慌てて投稿したのですが、手順を勘違いをしていました。
のぐりんさんの教えてくださった方法で、トライしてみようと思います。 
ただ、mazdaさんのは方法がまた違うようなので、ぜひやり方を教えて
いただきたいと思います。

長いことお世話をかけてしまいました。ありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World