Excelファイルとphpexcelを使用してチャートを生成します
私の記事「Microsoft Wordドキュメントの作成方法PHPでドキュメントの作成方法」(Windowsの下での互換性機能を使用)の後、純粋なPHP実装を促すコメントがかなりありました。つまり、ユニバーサルPHPライブラリを使用してオフィスファイルを操作しました。
この記事では、PHPExcelライブラリを使用してWebアプリで「Excelにエクスポート」機能を提供する方法を確認して、ユーザーがデータをExcel 2007/2013ファイルにエクスポートしてさらに分析できるようにします。 >注:Excel(およびOffice)のファイル操作を提供できるPHPライブラリがいくつかあります。ここで使用するlibは、phpofficeのサブセットであるphpexcelと呼ばれ、ここでクローニングできます。
キーテイクアウト
phpofficeのサブセットであるphpexcelは、Excelファイルの純粋なphp操作を可能にし、互換性とWindowsの依存関係を回避します。
チュートリアルでは、ゲームデータ、追加の分析、およびPHPExcelを使用してデータの表示と分析を強化したChartを使用してExcelファイルを作成することを示しています。 必要なセットアップには、5.2.0を超えるPHPバージョンが含まれ、特定のPHP拡張機能を有効にし、PHPExcelインストールにComposerを使用しています。- PHPEXCELでは、プロパティの設定、ワークシートの居住、式の挿入、視覚的に魅力的なチャートの作成など、詳細なExcelファイル操作が可能です。
- 最終出力では、Excelファイルをダウンロード可能な形式で保存し、チャートを確実に含め、PhpexcelがExcel 2013でPieチャートを効果的に処理できないことにメモが含まれています。
- 目的 このチュートリアルの後、
- を取得します
- 2013-14シーズンに、お気に入りのNBAチームであるLa Lakersのゲーム情報(日付、チーム、スコア、勝ち負けステータス)を示すシート。 データをExcel 2013ファイルにエクスポートするボタン。
- そのExcelファイルには、追加の分析データとPHPとExcelによって生成されるチャートが入力されます。
始めましょう。
準備
- phpexcelを使用するには、5.2.0を超えるPHPバージョンが必要です。有効にする3つのPHP拡張機能もあります:PHP_ZIP(オフィス2007形式を操作するために不可欠)、PHP_XML、PHP_GD2(オプションですが、正確な列幅の自動計算に必要です)。
- 次に、Composerを介してライブラリをインストールします。
- もちろん、データベースを稼働させて実行する必要があります。このチュートリアル(lakers.sql)のデータダンプは、この記事に関連付けられたレポにアップロードされました。データは、単純なSQLステートメント「Select * From Lakers」(8つのプレシーズンと82のレギュラーシーズンゲームを含む合計90のレコード)で取得されます。 また、このデモはMVCフレームワークとしてSilexを使用します。小枝はテンプレートエンジンとして使用されます。必要な依存関係がComposer.jsonファイルで正しく指定されていることを確認してください。
- インデックスファイル
index.phpは、Silexアプリケーションのエントリポイントになります。定義された2つのルートがあります:
<span>$app->get('/', function () use ($app) </span><span>{ </span> <span>$c=new trExcel<span>\Excel</span>(); </span> <span>return $c->index($app); </span><span>}); </span> <span>$app->post('/export', function () use ($app) </span><span>{ </span> <span>$c=new trExcel<span>\Excel</span>(); </span> <span>return $c->export($app); </span><span>});</span>
route '/'はエントリポイントであり、データと「エクスポート」ボタンを表示します。ルート '/エクスポート'は、実際にExcelにエクスポートするバックエンドハンドリングプロセスを行います。両方の関数は、ユーザー定義のクラス(classexcel.php)に包まれています。この記事の残りの部分では、このファイルに焦点を当てます。より正確には、このファイルで定義されているエクスポート機能と関連する関数に焦点を当て、PHPExcelライブラリを使用してExcel操作のいくつかの重要な側面について説明します。
excelアプリケーションとそのメタデータ
Excelアプリケーションインスタンスは通常、物理Excelファイルにマッピングされます。作成したファイルを説明する独自のメタデータがあります。メタデータは、Excelファイルを「Alt-Enter」したときに表示されます(または、そのファイルを右クリックして「プロパティ」を選択します):
<span>$ea = new <span>\PHPExcel</span>(); // ea is short for Excel Application</span>
上記のダイアログに示されているプロパティには、これらのプロパティを設定するための対応するsetxxxxメソッドがあります。ここで、xxxxはダイアログにリストされているプロパティ名とほぼ同じです。
メソッド(setXXXX)は非常に自明であり、「プロパティ」ダイアログに非常によくマップされています。マッピングにはいくつかの矛盾がありますが、接続を行うのはそれほど難しくありません(たとえば、「著者」は作成者にマッピングされます)。
ワークシートとセルの母集団
ワークシートは、おそらく最も操作するオブジェクトです。セルをデータまたは式で入力する、スタイルの適用、データフィルタリングの実行、チャートの挿入など。
ワークシートへの参照を取得するには、次のことを使用します。<span>$ea->getProperties() </span> <span>->setCreator('Taylor Ren') </span> <span>->setTitle('PHPExcel Demo') </span> <span>->setLastModifiedBy('Taylor Ren') </span> <span>->setDescription('A demo to show how to use PHPExcel to manipulate an Excel file') </span> <span>->setSubject('PHP Excel manipulation') </span> <span>->setKeywords('excel php office phpexcel lakers') </span> <span>->setCategory('programming') </span> <span>;</span>
ワークブック内のシートは常に0インデックスされています。したがって、最初の(そして今までの唯一の)シートはシートゼロになります。このシートのデフォルト名は常に「ワークシート」であり、Settitleメソッドで変更できます。
細胞/細胞を入力するには、少なくとも2つのオプションがあります。
これらの見出し、タイトル、その他の説明項目については、SetCellValueメソッドを使用して1つずつ入力します。
構造化されたデータの場合、そのほとんどはSQL Selectステートメントに由来するため、FromArrayメソッドを使用します。
<span>$ews = $ea->getSheet(0); </span><span>$ews->setTitle('Data');</span>
FromArrayメソッドには3つのパラメーターが必要です 1。配列形式のデータソース。
2。データがnullの場合の「フィラー」値。
3.充填を開始するためのセルの参照(左から右へ、次にダウンまで)。注:PDOを使用してデータを取得する場合、単純な$ res = $ q-> fetchall(pdo :: fetch_assoc);呼び出しは、返された結果データセットに、インデックスなしで関連する配列のみを含むように強制されます。 fetchallがオプションPDO :: fetch_assocなしで呼び出された場合、結果セットには、実際には、関連する配列形式の2つのセット、1つはインデックス形式の1つが含まれ、fromArrayを使用するときにExcelファイルに複製を作成します。
また、ヘッダーの行(ID、シーズンなど)をスタイリングすることもできます。それを行うには、2つの方法もあります1つの方法は、いくつかのGETメソッドを使用して、変更して変更するスタイルオブジェクトを取得することです。これを「バックグラウンドフィル」スタイルで行います。
<span>$app->get('/', function () use ($app) </span><span>{ </span> <span>$c=new trExcel<span>\Excel</span>(); </span> <span>return $c->index($app); </span><span>}); </span> <span>$app->post('/export', function () use ($app) </span><span>{ </span> <span>$c=new trExcel<span>\Excel</span>(); </span> <span>return $c->export($app); </span><span>});</span>
もう1つは、「スタイル」アレイを宣言し、変更したいスタイルとそれらを変更するスタイルを指定することです。次に、ApplyFromArrayを使用して、バッチにスタイルを適用します。ここでは、フォントとアライメントを変更しました。
両方の方法は、パラメーター($ header = 'a1:h1';)として範囲をサポートしています。これは非常に便利です。
最後に、各列に表示された最大長に合うように、列の幅を調整することをお勧めします。
残念ながら、これは範囲パラメーターをサポートしていないため、ループを使用してこれを実現します。
<span>$ea = new <span>\PHPExcel</span>(); // ea is short for Excel Application</span>
別のシートを追加し、式を挿入します
新しいワークシートを挿入するには、
になります
AddSheetメソッドには2つのパラメーターが必要です。
<span>$ea->getProperties() </span> <span>->setCreator('Taylor Ren') </span> <span>->setTitle('PHPExcel Demo') </span> <span>->setLastModifiedBy('Taylor Ren') </span> <span>->setDescription('A demo to show how to use PHPExcel to manipulate an Excel file') </span> <span>->setSubject('PHP Excel manipulation') </span> <span>->setKeywords('excel php office phpexcel lakers') </span> <span>->setCategory('programming') </span> <span>;</span>
$ ews2:挿入するExcelワークシートインスタンス;
- $場所:このワークシートのインデックス。したがって、0は1番目のものになることを意味します。 -1は、それが最後のものでなければならないことを意味します。
- ワークシートを挿入すると、通常どおりこのワークシートにセルを入力してスタイルを適用できます。このシートでは、フォーミュラを使用します:
ご覧のとおり、前のセクションで行ったことと違いはありません。式文字列は、必要な計算を実行するためにExcelファイルに入力するものとまったく同じです。
注:細胞参照(G2:G91)に特に注意してください。その式を書く怠zyな方法は、g:gのような範囲を使用することです。これは、シートにチャートがない場合に正常に機能します。チャートがある場合、g:g表記は失敗し、例外がスローされます。<span>$ews = $ea->getSheet(0); </span><span>$ews->setTitle('Data');</span>
この「要約」シートは次のようになります:
細胞b4に示されている%は次のコードで設定されています。
ここでいくつかのスタイリングの問題に注意してください。 A1の場合、次のスタイルを適用しました
<span>$app->get('/', function () use ($app) </span><span>{ </span> <span>$c=new trExcel<span>\Excel</span>(); </span> <span>return $c->index($app); </span><span>}); </span> <span>$app->post('/export', function () use ($app) </span><span>{ </span> <span>$c=new trExcel<span>\Excel</span>(); </span> <span>return $c->export($app); </span><span>});</span>
結果は、フォントの重み、フォントサイズ、およびアライメントが正しく適用されていることを示しています。 A1とB1のA1へのマージも正しく行われます。ただし、Setautosizeメソッドは、このマージされたセルで失敗します。その結果、このセル(A1)はまだ絞られています。これは、自動幅の計算が常に機能するとは限らないことを意味します。とにかく、大したことではありません。
写真は千の言葉の価値があります
データを視覚的に表現することは常に素晴らしいことです。そのため、チャートは役に立ちます。 Excelには、選択できる豊富な組み込みチャートセットがあります。 Phpexcelは、これらのほぼすべてをタップすることができます。私たちが作成する最初のチャートは、レイカーズチームとその対戦相手の各ゲームのスコアの浮き沈みを示すラインチャートです。
チャートを作成することは、ライブラリのサポートがあっても、長いコーディングジョブです。このプロセスの完全なコードは、classexcel.phpファイルに存在するAddChart1およびAddChart2メソッドに記載されています。重要な手順を説明します。
- データシリーズラベル
<span>$ea = new <span>\PHPExcel</span>(); // ea is short for Excel Application</span>
タイプ。ラベルの場合、間違いなく「文字列」;
- である必要があります
- ソース。 D1またはe1; にあります
- 形式。通常、nullを提供するだけで十分で、デフォルト形式が使用されます;
- count。ソース内のデータの量。通常、1。 である必要があります
x軸値ラベル
- これは、x軸のラベルを識別します。たとえば、「2013-11-15」では、レイカーズは86を獲得し、相手は89を獲得しました。「2013-11-15」は、これら2つのスコアのラベルです。私たちの場合、行2から行91までの「日付」列を使用します。
コンストラクターは同じであるため、パラメーターも同じです。
<span>$ea->getProperties() </span> <span>->setCreator('Taylor Ren') </span> <span>->setTitle('PHPExcel Demo') </span> <span>->setLastModifiedBy('Taylor Ren') </span> <span>->setDescription('A demo to show how to use PHPExcel to manipulate an Excel file') </span> <span>->setSubject('PHP Excel manipulation') </span> <span>->setKeywords('excel php office phpexcel lakers') </span> <span>->setCategory('programming') </span> <span>;</span>
データシリーズ値
- 「セルフスコア」(列D)および「相手スコア」(列E)を使用します。どちらも行2から91行です 上記の3つの重要な変数があると、データシリーズを設定できます。 Excelでは、データシリーズには、チャートを作成するために不可欠な以下の情報が含まれています。
チャートタイプ
<span>$ews = $ea->getSheet(0); </span><span>$ews->setTitle('Data');</span>
データシリーズの値のカウント
- データシリーズラベル
- x軸値ラベル
- データシリーズ値
- そして、コンストラクターは、これらすべてのパラメーターをすべて渡すだけで呼び出されます:
- 次に、プロット領域と凡例を作成します:
-
<span>$app->get('/', function () use ($app) </span><span>{ </span> <span>$c=new trExcel<span>\Excel</span>(); </span> <span>return $c->index($app); </span><span>}); </span> <span>$app->post('/export', function () use ($app) </span><span>{ </span> <span>$c=new trExcel<span>\Excel</span>(); </span> <span>return $c->export($app); </span><span>});</span>
ログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピープロット領域には、チャートとデータシリーズのレイアウトが含まれています。レイアウトは、チャートに値、パーセンテージなどを表示するかどうかを指定できます。デフォルトのレイアウトが使用されるようにnullを使用できます。
凡例は、データグループの視覚的表現を提供するために使用されます。
そして、最後に、チャートを作成できます:
このコンストラクターの唯一の新しいパラメーターは、チャートの名前です。 「Chart1」は十分です。チャートのタイトルは、<span>$ea = new <span>\PHPExcel</span>(); // ea is short for Excel Application</span>
ログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピーを介して作成できます
チャートが作成された後、左上角と右下のコーナーの座標を設定してワークシートに挿入して、位置とサイズを設定します。<span>$ea->getProperties() </span> <span>->setCreator('Taylor Ren') </span> <span>->setTitle('PHPExcel Demo') </span> <span>->setLastModifiedBy('Taylor Ren') </span> <span>->setDescription('A demo to show how to use PHPExcel to manipulate an Excel file') </span> <span>->setSubject('PHP Excel manipulation') </span> <span>->setKeywords('excel php office phpexcel lakers') </span> <span>->setCategory('programming') </span> <span>;</span>
ログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピー工場パターンを使用して、ファイルを保存するためにライターオブジェクトを作成します。フォーマットが指定されます(この場合は「Excel2007」形式を使用します)。<span>$ews = $ea->getSheet(0); </span><span>$ews->setTitle('Data');</span>
ログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピーおよびチャートのズームインビュー。正しく配置され、サイズがあります:
結論
PHPEXCELでExcelファイルとチャートを生成することに関するよくある質問(FAQ)
プロジェクトにphpexcelをインストールするにはどうすればよいですか?
プロジェクトにphpexcelをインストールするには、PHPの依存関係管理ツールであるComposerを使用する必要があります。まず、そうしていない場合は、作曲家をインストールする必要があります。 Composerをインストールした後、ターミナルのProject Directoryに移動し、Command Composerがphpoffice/phpexcelを要求します。このコマンドは、プロジェクトにphpexcelをダウンロードしてインストールします。
phpexcelを使用して基本Excelファイルを作成するにはどうすればよいですか? phpexcelクラスの。次に、タイトル、説明、著者などのExcelファイルのプロパティを設定できます。その後、セルにアクセスして値を設定することにより、Excelファイルにデータを追加できます。最後に、Writerを作成して保存メソッドを呼び出すことでExcelファイルを保存できます。
phpexcelを使用してExcelファイルにチャートを追加するにはどうすればよいですか?ファイルPhpexcelを使用すると、最初にデータシリーズを作成する必要があります。データシリーズは、チャートに表示されるデータを表します。データシリーズを作成した後、チャートを作成してデータシリーズを追加できます。次に、タイトルや凡例などのチャートのプロパティを設定できます。最後に、AddChartメソッドを呼び出すことでワークシートにチャートを追加できます。最初にリーダーを作成する必要があります。読者は、Excelファイルを開き、その内容を読み取る責任があります。読者を作成した後、Loadメソッドを呼び出すことでExcelファイルをロードできます。次に、セルにアクセスして値を取得してExcelファイルのデータにアクセスできます。既存のExcelファイルPHPEXCELを使用して、最初にリーダーを作成し、Excelファイルをロードする必要があります。次に、Excelファイルのセルにアクセスして、値を設定できます。データを変更した後、ライターを作成して保存メソッドを呼び出すことで変更を保存できます。 Excelファイルのセルをフォーマットする方法。セルのフォント、色、アライメント、境界線、および数値形式を設定できます。また、セルをマージし、セルの幅と高さを設定し、セルにスタイルを適用することもできます。メモリの制限のために挑戦的になる可能性があります。ただし、PHPExcelは、メモリの使用量を削減するのに役立つセルキャッシング機能を提供します。セルキャッシングを有効にすることにより、PHPExcelはメモリの代わりにセルデータをキャッシュに保存し、メモリの使用量を大幅に削減できます。
phpexcelを使用してexcelファイルからpdfを生成するにはどうすればよいですか?
phpexcelは、ExcelファイルからPDFSの生成をサポートします。 PDFを生成するには、タイプPDFのライターを作成し、保存メソッドを呼び出す必要があります。プロジェクトに適切なPDFレンダリングライブラリをインストールしている必要があることに注意してください。
phpexcelを使用してExcelファイルに画像を追加するにはどうすればよいですか? 。画像を追加するには、描画オブジェクトを作成し、画像のパスを設定し、ワークシートに画像を配置する必要がある座標を指定する必要があります。
phpexcelは例外を使用してエラーを処理します。エラーが発生すると、phpexcelは例外をスローします。トライキャッチブロックを使用してこれらの例外をキャッチし、適切に処理できます。これにより、プログラムのフローを制御し、ユーザーに意味のあるエラーメッセージを提供できます。
以上がExcelファイルとphpexcelを使用してチャートを生成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

php8.1の列挙関数は、指定された定数を定義することにより、コードの明確さとタイプの安全性を高めます。 1)列挙は、整数、文字列、またはオブジェクトであり、コードの読みやすさとタイプの安全性を向上させることができます。 2)列挙はクラスに基づいており、トラバーサルや反射などのオブジェクト指向の機能をサポートします。 3)列挙を比較と割り当てに使用して、タイプの安全性を確保できます。 4)列挙は、複雑なロジックを実装するためのメソッドの追加をサポートします。 5)厳密なタイプのチェックとエラー処理は、一般的なエラーを回避できます。 6)列挙は魔法の価値を低下させ、保守性を向上させますが、パフォーマンスの最適化に注意してください。

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

Restapiの設計原則には、リソース定義、URI設計、HTTPメソッドの使用、ステータスコードの使用、バージョンコントロール、およびHATEOASが含まれます。 1。リソースは名詞で表され、階層で維持される必要があります。 2。HTTPメソッドは、GETを使用してリソースを取得するなど、セマンティクスに準拠する必要があります。 3.ステータスコードは、404など、リソースが存在しないことを意味します。 4。バージョン制御は、URIまたはヘッダーを介して実装できます。 5。それに応じてリンクを介してhateoasブーツクライアント操作をブーツします。

PHPでは、Try、Catch、最後にキーワードをスローすることにより、例外処理が達成されます。 1)TRYブロックは、例外をスローする可能性のあるコードを囲みます。 2)キャッチブロックは例外を処理します。 3)最後にブロックは、コードが常に実行されることを保証します。 4)スローは、例外を手動でスローするために使用されます。これらのメカニズムは、コードの堅牢性と保守性を向上させるのに役立ちます。

PHPの匿名クラスの主な機能は、1回限りのオブジェクトを作成することです。 1.匿名クラスでは、名前のないクラスをコードで直接定義することができます。これは、一時的な要件に適しています。 2。クラスを継承したり、インターフェイスを実装して柔軟性を高めることができます。 3.使用時にパフォーマンスとコードの読みやすさに注意し、同じ匿名のクラスを繰り返し定義しないようにします。
