私の記事「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>今すぐファイルを保存している場合 - 後で保存について説明します - XLSXファイルがデータで満たされ、適切にフォーマットされていることがわかります:
別のシートを追加し、式を挿入します
新しいワークシートを挿入するには、
になります
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>データシリーズラベルは、実際にはphpexcel_chart_dataseriesvaluesインスタンスです。コンストラクターには、4つのパラメーターが含まれています
タイプ。ラベルの場合、間違いなく「文字列」;
- である必要があります
- ソース。 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を使用できます。
凡例は、データグループの視覚的表現を提供するために使用されます。
そして、最後に、チャートを作成できます:
<span>$ea = new <span>\PHPExcel</span>(); // ea is short for Excel Application</span>
このコンストラクターの唯一の新しいパラメーターは、チャートの名前です。 「Chart1」は十分です。チャートのタイトルは、を介して作成できます
<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>
チャートが作成された後、左上角と右下のコーナーの座標を設定してワークシートに挿入して、位置とサイズを設定します。<span>$ews = $ea->getSheet(0); </span><span>$ews->setTitle('Data');</span>
工場パターンを使用して、ファイルを保存するためにライターオブジェクトを作成します。フォーマットが指定されます(この場合は「Excel2007」形式を使用します)。およびチャートのズームインビュー。正しく配置され、サイズがあります:
結論
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 サイトの他の関連記事を参照してください。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

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

WebStorm Mac版
便利なJavaScript開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

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