IE+JAVASCRIPTでのEXCELファイル編集方法について
[上に]
[前に]
[次に]
もえちゃん
[E-Mail]
2000/01/17(月) 15:21:10
IE5.0+JAVASCRIPTを使って、以下のしくみの実現方法
を模索しています。
どなたかご教示の程よろしくお願いします。
[実現したいしくみ]
以下の1〜3の一連の処理をボタンクリック一回で完了させる。
1.サーバよりEXCELファイル(雛型ファイル)をダウンロード
する。
2.特定のセルにIE上で入力された値を埋め込む。
3.更新されたファイルをクライアント側の特定のディレクトリに
保存する。
[質問]
HTMLを使用してファイルのダウンロードは成功しました。
この時、EXCELが起動しダウンロードしたシートがアクティブに
なっています。
このシートに対してどのようにデータを埋め込めばよいのかわかりませ
ん。
AcvtiveXオブジェクト(GetObject関数など)を使うと
実現できるような気がするのですが。
どなたかご存知の方、いらっしゃいませんか?
hiro-kim
2000/01/17(月) 15:40:47
(1) Webページのフォームに,セル格納値と格納ディレクトリを入力。ボタンを押す。
(2) Webサーバ側のCGIプログラムが起動。Webサーバ側の雛形CSVテキストファイルをOpenして,値を埋め込んで,Webサーバ側の別ディレクトリに保存する。
……では,いけないのですか。
もえちゃん
[E-Mail]
2000/01/17(月) 16:05:00
早速のご回答どうもありがとうございます。
雛型のExcelファイルは帳票のテンプレートのようなものを想定していますので、テキストファイルではちょっと役不足なのです。
ご指摘のようにサーバ側で処理をさせるような事も考えました。
例えばJAVAなどで直接EXCELファイルにデータを書きこむ事は可能でしょうか?
うぐいす
2000/01/17(月) 18:39:23
1)サイト上でデータを入力
2)結果を埋め込んだExcelファイルをサーバ上に作成
3)Excelファイルのダウンロード
というものでしたら、作成したことがあります。
私はASP(アクティブ サーバー ページ)を使用しています。
サーバー側の処理であればJavaScriptやVBScriptで可能だと思います。
# hiro-kimさんと同じ事を書いている気がするのですが・・・。
もえちゃん
[E-Mail]
2000/01/17(月) 19:15:35
うぐいすさん、hiro-kimさんありがとうございます。
スキル不足でお恥ずかしいのですが良かったら教えてください。
1.ASPは全てのWebサーバがサポートしているのですか?
2.うぐいすさん案(Javascript)のコーディングサンプルなどありませんでしょうか?
うぐいす
2000/01/17(月) 20:30:59
ASPは残念ながら、WinNTサーバーのみのようです。
更に、私はVBScriptを使用しているため、JavaScriptのサンプルコードはありません。
とりあえず、ASP(VBScript)のソースを書き込んでおきます。
'(シングルコーテイション)は、VBではコメント表示の記号です。
===========================================================
<%@Language="VBScript"%>
<%
' ### Excel作成 ###
'定数の宣言(Excelファイルのパス)
const efpath = "c:\inetpub\wwwroot\test.xls"
const dlpath = "http://www.hoge.co.jp/test.xls"
'変数の宣言
dim excelobj
dim bookobj
dim sheetobj
dim item_a
dim item_b
dim item_c
'テストデータを適当に代入
item_a="test"
item_b=30
item_c=item_b/6
'Excelファイルのオープン
Set excelobj = CreateObject("Excel.Application")
Set bookobj = excelobj.WorkBooks.Open(efpath)
Set sheetobj = bookobj.Sheets(1)
' *** データの格納 ***
'セルB5に'test'という文字列が表示される
sheetobj.Cells(2,5).Value = item_a
'セルc5に30という数値が表示される
sheetobj.Cells(3,5).Value = item_b
'セルd5に5という数値が表示される
sheetobj.Cells(4,5).Value = item_c
'終了処理
bookobj.Save
sheetobj.Application.Quit
Set sheetobj = Nothing
Set bookobj = Nothing
Set excelobj = Nothing
%>
<html>
<head>
<title>Excel - Test</title>
</head>
<body>
<!-- 本当は、圧縮ファイルにした方がいいと思うけど・・・ -->
<a href="<%=dlpath%>">ダウンロードテスト</a>
</body>
</html>
===========================================================
もえちゃん
[E-Mail]
2000/01/18(火) 10:03:00
うぐいすさん、ご親切にどうもありがとうございました。
サーバ側の処理+VBSCRIPTの方向で検討してみます。
もえちゃん
2000/01/18(火) 11:22:38
すみません、質問の続きです。
ASPがIISしかサポートしていないとすれば、WWWサーバがAIXの場合はVBScriptでの処理は無理だということですよね?
とすればJAVAなどを使うしかないのでしょうか?
hiro-kim
2000/01/18(火) 12:55:42
ASP(VBScript)はMicrosoft製品だからExcelデータ(.xls)に対応しているわけです。.xlsの直接読み書きはJavaの通常の機能ではできないです。.xlsのデータ形式がわかっていれば別ですが。
「雛型の帳票のテンプレート」というのが1Sheetかつ単純なものであれば,CSVテキスト形式の代わりにSYLKテキスト形式を使うことで,セル幅・セル高さ・文字修飾などの情報を維持したデータファイルを作ることが,一応できます。
このレベルではとてもニーズを満たさない,というようですと,当初の質問どおり,クライアント側での処理を考える必要があると思います。
もえちゃん
[E-Mail]
2000/01/18(火) 17:22:17
しつこくて申し訳ありませんが、教えてください。
SYLK形式のファイルならば,サーバ側でJAVAやJAVASCRIPTを使用してアクセス可能だということでしょうか?
hiro-kim
2000/01/18(火) 18:12:21
テキストファイルなのですから,Excelで実際にSYLK形式で出力してみて試してみればよいと思います。
IBM AIX ではどんなWebサーバプログラムが動くのかすら私は知りませんから,それが SSJS(Server-Side JavaScript)に対応しているのかに至ってはまったく不明。Javaについては,IBMですからとうぜん対応しているでしょうけれど。
もえちゃん
[E-Mail]
2000/01/18(火) 19:09:21
[[解決]]
どうにか解決できそうです。
どうもありがとうございました。
[上に]
[前に]
[次に]