@SteveB私のコメントと以前のあなたの応答に加えて..以下をお読みください。
@SteveB素晴らしいアイデアのように見えます..しかし、なぜxmlを使用するのですか? xml を使用しようとしていますが、xml をテキスト ファイルに書き込む形式がわかりません。説明できますか。.csv も使用できますか? シンプルな .csv ファイルを書くのは簡単に見えるからです。ソリューション全体がどのように機能するか..私がユーザーであるとしましょう..phpページをクリックして開く人..Excelテンプレートをどこに保存する必要があるか..そしてそれがどのようにユーザーに表示されるか..別のユーザーが接続するとどうなりますか同じページなど。テンプレート ファイルにピボット テーブル、Excel マクロと VBA、画像とグラフを保持したい。– ハイタワー
@ihightower: xml は CSV よりも生成が簡単ですが (少なくとも、私の主要なプログラミング言語である .Net と C# を使用して)、これは CSV でも機能すると思います。Excel テンプレートの提供は簡単です... Excel ファイルは動的に生成されないため、静的コンテンツとして提供するだけです。– スティーブ B
私の所見..
XML と CSV
インポート用の CSV 形式は、Excel テーブル形式が必要ない場合にのみ適しています。要約すると、外部データとテーブル形式を同時に持つことができないことがわかりました。
データ接続テーブルを「テーブルとしてフォーマット」に変換すると発生するエラーは次のとおりです。
Your selection overlaps one or more external data ranges.
Do you want to convert the selection to a table and remove
all external connection?
もちろん、私はそれを望んでいません..しかし、インポートデータ接続にxml形式を使用しています...テーブル形式は、このスクリーンショットのようにとどまることができます:
そして、1 画面いっぱいまでスクロールすると、画面は次のようになります。列ヘッダー A、B、C が自動的にデータ ヘッダー (ISBN、日付、タイトル、...) に変換されていることがわかります。
したがって、xml ソリューションを使用する必要があります.. php を使用する方法を理解しています。しかし、約 10 列 x 20,000 行のデータでテスト目的で CSV を使用すると、非常にうまく機能します。Web サーバーからの更新も非常にうまく機能します。
すべてのピースをまとめる
チームと社内で話し合いましたが、これは本当にうまくいくと思います。現在、彼が php から生成したデータを含む Excel テンプレート レポートを配信するために、ユーザー アクションの配信とフローについてブレインストーミングを行っています。
わかりました..何が始まりますか?
- Excel テンプレート (staff_analysis_template.xlsm など)。これには、ピボット テーブル、Excel マクロ、ボタン、画像、グラフなど、Excel ファイルに含まれるすべてのものが含まれます。
- テンプレート ファイルには、「data」という名前のシートが 1 つあります。これは、xml または csv のインポートが最終的に行われる場所です...ファイル内のすべてのピボット テーブルとチャートですぐに利用できます。
- ユーザーがデータをフィルター処理するためのリスト ボックスとテキスト フィールドを持つ php Web ページ..検索をクリックすると、Web ページの結果と、Excel テンプレートで同じデータを表示するためのリンクが提供されます。シート内のすべての結果データを含むファイル: データ。
サンプル データを含む Excel テンプレートを次に示します。このスクリーンショットでは、次のことがわかります。
- シート: php から生成された xml データが接続されて最終的に配置されるデータ。
- シート: 概要. ここでは、Excel のすべての数式を使用できます... データに基づくユーザーに表示されます。
- シート: ピボットデータに基づくピボット テーブルとチャートを作成でき、ファイルを開くと自動的に更新されます。
- VBAも利用できます。たとえば、ボタンを使用してデータを更新したり、その他の作業を行うことができます。
基本的に、Excel で利用できるものはすべて使用できます。結果のxmlファイルはWebサーバーに残すことができます..また、データ接続はURLでもファイルでもかまいません。
sourceFile="http://xxxxx/test_data3.csv" または
sourceFile="C:\Users\Fiaz\Documents\Magic Briefcase\Learn\excel\test_data3.csv"
把握する必要がある
まだ解明されていない部分は、これをすべてシームレスなユーザー エクスペリエンスに接続する方法です。つまり、ユーザーは最初にファイルを保存したり、手動で xml に接続したりする必要はありません。Excel テンプレートを開くだけで済みます。必要なデータと利用可能なすべての分析がすぐそこにあります。ユーザーがそれを保存する必要がある場合は、名前を付けて保存してローカル マシンにコピーします。
このシームレスなユーザー エクスペリエンスに対する私たちの考えは次のようなものです。
- 一意の xml データ ファイル (例: YYYYMMDDHHMMSS_username_pagename.xml) を生成し、tmp サーバー フォルダーに配置します。
- テンプレート ファイルを tmp サーバー フォルダーにコピーし、xml ファイルの接続を更新します (このためには、.xlsx または .xlsm ファイルを解凍する必要があります)。ファイル名とフォルダーを使用して (xl/connections.xml) の接続情報を更新します。 : YYYYMMDDHHMMSS_username_pagename.xml を圧縮し、Web 経由で .xlsm または .xlsx として配信します。
手動で段階的に試してみたところ、本当にうまくいきました。
これを本当に改善し、シンプルに保つためのアイデアをいただければ幸いです。
PHPExcel の作成者 @MarkBaker からのフィードバックが必要です:
@MarkBaker: PHPExcel に関する他の投稿のコメントを読んで、PHPExcel を使用して同じことを行うことはできないことを理解しています (つまり、元の Excel テンプレートをそのまま使用することです)。したがって、SteveB によって提案され、上記で私が詳しく説明したソリューションは、この目的に対してはるかに強力なようです。元のエクセルのテンプレートファイルはそのままに、すべてのアセット(ピボットテーブル、VBAなど)が入ったまま保管できます。サーバーには Excel も必要ありません。
したがって、この機能は、将来 PHPExcel 自体で利用できるようになると期待できますか。そうすれば、PHPExcel の第一人者自身の標準的な手法を使用することに自信を持つことができます。
私の意見では、PHPExcel は請求書タイプのレポートやその他多くのレポートに非常に役立ちますが、ピボット テーブルや複雑なチャートやコードなどを使用する必要があるビジネス インテリジェンス タイプの分析には適していません。
コメントをお寄せください..どうすればより良くできるかについて、あなたの視点から見ることに非常に興味があります.
すべてを可能な限りシンプルにしますが、シンプルにしないでください。アルバート・アインシュタイン