この記事では主に 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 '';
$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 サイトの他の関連記事を参照してください。