ホームページ  >  記事  >  バックエンド開発  >  PHPでの一般的なExcelエクスポート方法の例

PHPでの一般的なExcelエクスポート方法の例

韦小宝
韦小宝オリジナル
2017-12-30 20:16:192438ブラウズ

この記事では主に php での一般的な Excel エクスポート方法に関する関連情報を紹介します。この記事で紹介されている方法は、php を学習したり使用したりするのに一定の参考学習価値があります。 PHP Excelの友達、エディタをフォローして一緒に学んでください。

1. 一般的なエクスポート方法

Excel をオンラインでエクスポートするには、CRM または OA システムで Excel をエクスポートするのが一般的であることは誰でも知っています。データ リストを参照して、一度に 1 セルずつ固定セルにデータを追加します。一度やっておけば、該当するコードをコピーして修正するだけで、他の場所へのエクスポート機能が完了します。

しかし、次の 2 つの問題があります:

1. リスト データ フィールドを変更する場合、大量のコードを変更する必要があり、保守が難しく、変更するのが面倒です


2.エクスポート関数が複数回出現するため、必要になります。 大量の反復的で冗長なコードを複数の場所にコピーするのは不快です

したがって、Excel を使用する場合は、渡すだけで済みます。データのヘッダー、ヘッダーフィールド名、データリスト、データテーブル名をExcelにエクスポートできます。

2. 共通のエクスポートメソッドを使用します

以下の図に示すように、4つのパラメータを渡すだけでエクスポートが完了し、使用とメンテナンスが非常に簡単になります。

さて、目標は明確になりました。次のステップはコードを実装することです。

言うまでもなく、この機能を実現する上での最大の難関は、各データのインデックスとデータの順序に基づいて、各データ内のExcelの各フィールド(A1、B3など)の座標値を自動的に計算することです。ヘッダーフィールド。

それでは、A1から始めて、数字の値を縦に増やし、横の文字がZに変わると、次の文字はAA、...、ZZ、となります。 ..,AAA...

この場合、垂直座標は単純で各データのインデックス値に基づいて計算できることがわかりますが、難しいのは水平座標をどのように計算するかです。水平座標を注意深く分析すると、A を 0 とみなした場合、Z は 16 進数に似た英数字システムであることがわかります。ただし、この種の数は、一般的な 16 進数や 8 進数などとは異なります。Z が桁上げされると、次の数は BA ではなく AA になるからです。たとえば、共通基数システムでは、10 進数が 9 の場合は 00 ではなく 10 になり、16 進数で 0xF の場合は 0x00 ではなく 0x10 になります。

したがって、基本変換アルゴリズムを参照し、それを変更して Excel の水平座標 (10 進数から擬似 26) を計算する方法を取得できます:


//AAA转换
public static function toAAA($dec)
{
 if ($dec < 0) return &#39;&#39;;
 $y = $dec % 26;
 $x = floor($dec / 26);
 return self::toAAA($x - 1) . chr($y + 65);
}


最後に、添付の完全なコード

フレームワークはYii2、Excelエクスポートコンポーネントはmoonlandsoft/yii2-phpexcelです


その他は同様です



3つ。 結果のエクスポート:

この記事の内容は以上です。皆様のお役に立てれば幸いです。


関連する推奨事項:

PHPでEXCELに画像を保存する方法

PHPのExcelエクスポートとダウンロードのネイティブ実装方法

PHPエクスポートEXCEL迅速開発ガイド

以上がPHPでの一般的なExcelエクスポート方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。