- ベストアンサー
PHPとPostgreSQLとエクセル
以下のことがしたいのですが どうすれば実現できるのでしょうか? というか実現可能でしょうか? 1.PHP+PostgreSQLで構築したサイトがあります 2.PHPでPostgresのデータを抽出します 3.上のデータを サーバー上にあるテンプレートファイルの エクセルファイル内に書き込む 4.エクセルをIEからリンク(エクセルが起動してもよい) また、 エクセルにマクロを書いておけばマクロも動くのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#2です 例えばこんなのを保存してIEから実行して みてください。 このfunctionの中身を動的にいじれば たいていのことはできます。 ただし、セキュリティレベルを調整する 必要がありますのでご注意ください。 //excel.htm <input onClick="xl()" type="button" value="エクセル"> <script language="vbscript"> function xl() const xlContinuous=1 Set sWSH = CreateObject("Wscript.Shell") set oXL= CreateObject("Excel.Application") sWSH.AppActivate("Microsoft Excel") with oXL .Visible = TRUE .WorkBooks.Add .Sheets(1).Activate .Range("A1").value="テスト" .Range("A2").value="1000" .Range("B2").value="2000" with .Range("C2") .value="=A2+B2" .Borders.LineStyle=xlContinuous .Font.Bold = True .NumberFormatLocal = "#,##0" .Interior.ColorIndex = 38 end with end with set oXL=Nothing end function </script>
その他の回答 (4)
- papillon68
- ベストアンサー率61% (42/68)
#4のパピヨンです。 私はLinuxに関しては知識がありません^^; ◆環境 OS:Windows 2000 PHP:5.0.4 Apache:2.0.54 私はサーバ、クライアント共にWindowsだったため、あのような処理をいていました。 Linux環境ということですが、それはサーバ、クライアント共にということでしょうか。 OfficeソフトはWindows専用のアプリケーションあと思っていましたが、 Linuxでも使用可能なのですね? http://www.str.ce.akita-u.ac.jp/~gotou/linux/#hazime こちらを読むとOpenOfficeというソフトを使用すればLinuxでもOfficeソフトを操作できるようなことが書いてあります。 angelinaaneさんの大まかな処理は分かったのですが、 どこでどのようにしてExcelと連係させようとしているのかが 分かりません。 参考に挙げられたページはプラットフォームがWindowsなように思いました^^; LinuxでもOKなんでしょうか。
お礼
お返事大変遅くなりました・・。 いちおうサーバーにマクロを書いたエクセルファイルをおいておけば、ブラウザでエクセルにリンクを貼っていると起動することがわかりました。 これでひとまずやってみます。
- papillon68
- ベストアンサー率61% (42/68)
angelinaaneさんはじめまして、papillon68と申します。 私はCOMを使って同じようなことをやったことがあります。 COMを使って1からExcelファイルを生成することもできますが、 私の場合は、サーバ上に元になるExcelファイル(マクロも含む)を置いておき、それをコピーします。 ※コピーによりマクロもコピーされ、動作します。 (angelinaaneさんのいうテンプレートになるのかもしれません) その後、コピーしたもののセルなどの整形を行います。 (SQLで取得したデータなどの書き込みなど) 出来上がったExcelファイルはクライアント側でダウンロードしてもらい、クライアント側で入力をします。 入力後にファイルのアップロードを使ってサーバにアップするようにしました。 参考URLはCOMについてのPHPマニュアルです。
お礼
回答ありがとうございます。 残念ながらLinux環境なのです。 でもこんな関数があったんですね。 知りませんでした。 いろいろ探してまして、 http://www.asahi-net.or.jp/~ef2o-inue/download/sub09_020_120.html こんなやり方があったのですが、 これどうなんでしょうね。って聞くのもおかしいですけど。
- yambejp
- ベストアンサー率51% (3827/7415)
PHP+MySQLでVBScriptをつかってエクセルで データを表示しています。 PHPではVBScriptを動的に出力するように すれば、マクロ的なものも書くことができますよ。
お礼
回答ありがとうございます。 すみません。 具体例を何か ちょっと書いて頂くことはできますか? 全然イメージがわきません。
- kusukusu
- ベストアンサー率38% (141/363)
>サーバー上にあるテンプレートファイルの >エクセルファイル内に書き込む テンプレートに書き込むことは無理ですが、Spreadsheet::WriteExcelを使えば、簡単に動的なエクセルファイルが生成できるので、やりたいことと同等のことはできます。 >エクセルをIEからリンク(エクセルが起動してもよい) ブラウザ次第ですが、IE@Windowsだとデフォルトで立ち上がるんじゃないですかね? Windowsはあまり詳しくありませんが… >エクセルにマクロを書いておけばマクロも動くのでしょうか? そう言ったモジュールは聞いたことがありませんから、無理だと思います。 単に私が知らないだけかもしれませんが
お礼
回答ありがとうございます。 Spreadsheet::WriteExcelですか。 エクセルを作成しつつデータを書き込むということですよね。 やはりそうなりますか。
お礼
お返事遅くなりました。 なるほど、こういうことですか。 こういう方法があるんですね。 ちょっといろいろ試してみます。