質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

3回答

2768閲覧

PhpSpreadsheetで操作したエクセルをブラウザに表示

mokemoke

総合スコア52

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2018/09/04 05:59

データベースから必要なデータを取り出し、PhpSpreadsheetを利用してテンプレートのエクセルファイルを
読み込みし、各セルにデータベースから取り出したデータをセットし、ダウンロードさせる機能を作成し、
動作確認まで出来たところで、客先からダウンロードの前に画面上で確認したいので、ブラウザ上に表示
させたいとの要望があがり、実現可能か調べているところですが、思うような情報が見つかりません。
PhpSpreadsheetで操作したエクセルをブラウザ上に表示させる事は可能なのでしょうか?
もし可能であれば、アドバイス等を頂けると助かります。
なお、単に表形式ではなく、エクセル形式での表示です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

画面表示の時点でクライアントPCに情報がダウンロードされているのでブラウザに表示する方法があったとしてもそれは意味がないと思います。
できるとしたら「この情報をダウンロードします」とPhpSpreadsheetでExcelを作る前に対象のデータを、例えばHTMLのtable組みで見せるとか、そういう形になると思いますよ。

Microsoftサポートページに「ブラウザーでブックを開く」というページがありますが、それもまた違う気がしますし。

投稿2018/09/04 06:12

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mokemoke

2018/09/05 05:15

mts10806さん、こんにちは。 お客様の要望としては、ダウンロードの前に確認したい(確認後にエクセルを印刷)との事で、 作成するエクセルシート自体も複数シートあるので、table組みで確認するのではないかと思います。 mts10806さんの言う通り、ブラウザで見るのは現実的では無いと思うので、改めてお客様に 確認してみるつもりです。
m.ts10806

2018/09/05 06:10

先に書いたようにExcel開く時点でダウンロードされていて開いたPC側に舞台はうつっています。 「サーバー上で作ったものをサーバー上で実行し、PCに見せる」のは別の回答にあるとおり「ちょっとやっといて」レベルのものではありませんし、本来ファイルの扱いが得意とはいえないWebにさせるのは現実的でない(私なら断ります)ものです。 どうしてもダウンロード前確認がしたいのでしたら私が提示したようなhtmlにするとか「それっぽいもの」で受け入れてもらうしかないかなと。不得手なところに注力しても労力のわりに得られる効果はほぼないと思います。
guest

0

ベストアンサー

teratailの趣旨に反した回答をしますが、「作るのが難しい」で納得するお客は少ないでしょう。
顧客が本当に欲しいものが見えてない気がしますが、私ならExcelの書式、特に印刷される状態を再現できません、そのような不十分なものを見るのはユーザにとって時間の無駄です、ダウンロードしてプレビューしてください、と応じると思います。
googleドライブはofficeファイルを開いてくれるのですが、一度どの程度再現できるかご覧になるとよいと思います。
office365onlineですらオブジェクトパーツを正確に再現できません。こちらも参考になさるとよいと思います。

teratail的な回答としては仕様を参考にpdfやhtmlに出力してその結果を画面として返せばよいかと思います。

投稿2018/09/05 09:18

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mokemoke

2018/09/06 06:26

papinianusさん、こんにちは。 アドバイスありがとうございます。 ブラウザのアドオンでエクセルを読み込んでみましたが、確かにエクセル自体と比べると 再現性は良くありませんね。 一応、お客様にはダウンロードしてプレビューして下さいと説明する予定ですが、 お客様からの情報として、別部隊で同じ事が再現出来そうだとの話があったので、 そちらで上手く出来るようであれば、そちらの手法に合わせようかと思います。 ありがとうございました。
guest

0

客先からダウンロードの前に画面上で確認したいので、ブラウザ上に表示させたい

できなくはない。けど現実的ではないという感じですね。昔のIE限定とかならExcelがインストールされていれば勝手に開いたもんだけど。

できなくはない、というのは、https://www.google.com/intl/ja_jp/sheets/about/ これと同じものを作ることができるなら、という感じです。

当然、お客さんがライトに言ってくるレベルでは対応はできないでしょう。


あとは、ブラウザにアドオンをインストールしておくことでお茶を濁すことはできるかな…。
ブラウザごとに対応は異なるだろうけど。

https://addons.mozilla.org/ja/firefox/addon/excel-xls-editor/?src=search

投稿2018/09/04 06:11

編集2018/09/04 06:21
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mokemoke

2018/09/05 05:23

Kousuke_Shibuyaさん、こんにちは。 Kousuke_Shibuyaさん言う通り、ブラウザで見るのは現実的では無いと思うので、改めてお客様に 確認してみるつもりです。 ブラウザにアドオンをインストールする事に関しては、お客様から同様の話を別部隊で検討している との話を聞いておりますが、単にアドオンをインストールしただけでは、PhpSpreadsheetを利用して 作成されたエクセルシートを直接表示させるのは、出来ないのでは?と思っております。 アドオンについては、ブラウザからエクセルファイルの読み込み、更新、格納が出来るとの記述を 確認しておりますので、ブラウザから直接エクセルファイルを開く必要があるので、ファイルとして 格納されていないファイルを表示させるのは、難しいかと思っております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問