PHPExcelはもはや維持するので、PhpSpreadsheetはPHPExcelの次のバージョンです。PhpSpreadsheetは純粋なPHPで書かれたライブラリー、および名前空間、PSRの規範の導入です。PhpSpreadsheet下のインポートおよびエクスポート機能のここで簡単に紹介。
1、インストール
- 作曲のインストールを使用します。
作曲必要 phpoffice / phpspreadsheet
- GitHubのダウンロード:
https://github.com/PHPOffice/PhpSpreadsheet
2、ファイルのエクスポートをエクセル
/ * * * Excelは、エクスポートファイル * / 関数エクスポート() { するrequire_once __ DIR__ '/vendor/autoload.phpを' ; $データ = [ [ 'TITLE1' => '111'、 'TITLE2' => '222']、 【 'TITLE1' => '111'、 'TITLE2' => '222']、 [ 'TITLE1' => '111'、 'TITLE2' => '222' ] ]; $タイトル = [「最初の行ヘッダー''第2の行ヘッダ' ]; // 新しい新しいスプレッドシートオブジェクトを作成 $スプレッドシートを = 新しい新しい\ PhpOffice \ PhpSpreadsheetスプレッド\()。 $シート = $スプレッドシート - >GetActiveSheet関数(); // メソッド使用してsetCellValueByColumnAndRow //ヘッダー //セルの内容 のforeach($タイトル AS $キー => $値){ // セルの内容書かれた $シート - > setCellValueByColumnAndRow($キー + 1 ,. 1、$値); } $行 = 2; // 第二行から のforeach($データ AS $アイテム){ $列 = 1 ; foreachの($アイテム AS $値){ //セルの内容書き込ま $シート - > setCellValueByColumnAndRow($カラム、$行、$値); $列 ++ ; } $行 ++ ; } // 第二の方法、setCellValue使用 //ヘッダ //セルの内容 titCol $ = 'A' ; foreachの($タイトル AS $キー => $値){ // セルの内容書かれた $シート - > setCellValue($のtitCol ,.」1' 。$値); $ titCol ++ ; } $行 = 2; // から二行目 のforeach($データ AS $アイテム){ $ DataCol = 'A' ; foreachの($アイテム AS $値){ // 書き込まれたセルの内容 $シート - > setCellValue ($ DataCol。$行、$値); $ DataCol ++は; } $行 ++ ; } // APOSウェブブラウザクライアント(XLSX)出力にリダイレクト ヘッダ( 'Content-Typeの:アプリケーション/ vnd.openxmlformats-officedocument.spreadsheetml.sheet' ); ヘッダ(「コンテンツの廃棄:添付ファイル、ファイル名= 『01simple.xlsx』」)。 ヘッダ( 'のCache-Control:最大エージング= 0' )。 // あなたはIE 9に提供している場合には、以下が必要かもしれ ヘッダ(「のCache-Control:最大エージング= 1」); // あなたがSSL経由でIEに提供している場合には、以下が必要かもしれ ヘッダ(「有効期限:月、1997年7月26日5時00分00秒GMT」); // 過去の日付 ヘッダ( '最終修飾:' gmdate( 'D、DのMYH:I:S'。 ')GMT'); ヘッダ( 'のCache-Control:キャッシュ、しなければならない-再検証'); // HTTP / 1.1 ヘッダ( 'プラグマ:パブリック')。// HTTP / 1.0 $ライター = \ PhpOffice \ PhpSpreadsheet \ IOFactory :: createWriter($スプレッドシート、 'XLSX' ); $作家 - >( 'PHP://出力'保存)。 終了; }
結果:
3、ローカルのExcelにファイルを保存
/ * * * Excelファイルローカルに保存 * / 機能保存() { するrequire_once __ DIR__ '/vendor/autoload.php'。; $データ = [ [ 'TITLE1' => '111'、 'TITLE2' => '222' ]、 [ 'TITLE1' => '111'、 'TITLE2' => '222']、 [ 'TITLE1' => '111'、 'TITLE2' => '222' ] ]; $タイトル = [「最初行ヘッダ「」第2の行ヘッダ' ]; // 新しい新しいスプレッドシートオブジェクトを作成 $スプレッドシートを = 新しい新しい\ PhpOffice \ PhpSpreadsheetスプレッド\()。 $シート = $スプレッドシート - >GetActiveSheet関数(); // ヘッダー //セルの内容が $ titCol = 'A' ; foreachの($タイトル AS $キー => $値){ // 書かれたセルの内容 $シート - > setCellValue($のtitCol。 、」1' $値); $ titCol ++ ; } $行 = 2; // から二行目 のforeach($データ AS $アイテム){ $ DataCol = 'A' ; foreachの($アイテム AS $値){ // 单元格内容写入 $シート - > setCellValue($ dataCol。$行、$値)。 $ dataCol ++ ; } $行 ++ 。 } // 保存 $作家 = \ PhpOffice \ PhpSpreadsheet \ IOFactory :: createWriter($スプレッドシート、 'XLSX' ); $作家 - >( '01simple.xlsx'保存)。 }
4、エクセルファイルの内容を読み取ります
/ * * *读取エクセル文件内容 * / 機能リード() { するrequire_onceの __ DIR__。'/vendor/autoload.php' ; $ inputFileName = のdirname(__FILE__)。'/01simple.xlsx' ; $スプレッドシート = \ PhpOffice \ PhpSpreadsheet \ IOFactory ::負荷($ inputFileName )。 // 方法二 $ sheetData = $スプレッドシート - > GetActiveSheet関数() - >のtoArray(ヌル、真の、本当の、真の); リターン $ sheetData 。 }
結果:
可能性のある問題:
1、致命的なエラー:不明なエラー:クラスのPhpOffice \ PhpSpreadsheet \スプレッドシート 'が見つかりません
自動的な負荷が存在しないためです。手動で導入されたファイルを読み込むことができます。
require_onceを __ DIR__。'/vendor/autoload.php';
または:
require_onceを __ DIR__。'/vendor/phpoffice/phpspreadsheet/src/Bootstrap.php';
2、致命的なエラー:インターフェース 'Psrの\ SimpleCache \ CacheInterface' が見つかりません
何PSR文書、簡単なキャッシュモジュールの不足がないからです。作曲がインストールされている場合は、自動的に生成されました。ない場合は、手動でダウンロードすることができます。
GitHubのダウンロード:https://github.com/php-fig/simple-cache/releases