ホームページ >バックエンド開発 >PHPチュートリアル >PHPExcel を使用して Excel ファイルを処理するにはどうすればよいですか?
PHPExcel は、Microsoft Excel (.xls および .xlsx) ファイルを処理するためのオープンソース PHP ライブラリです。 Excel ファイルの読み取り、書き込み、操作が可能で、豊富な関数とメソッドを提供します。
PHP プロジェクトで PHPExcel ライブラリを使用すると、Excel ファイルを迅速かつ簡単に処理し、データのインポート、エクスポート、データ処理などの機能を実装できます。この記事では、PHPExcelを使ってExcelファイルを加工する方法を紹介します。
1. PHPExcel のインストール
PHPExcel を使用するには、まずライブラリをダウンロードしてインストールする必要があります。 PHPExcelの最新版は公式Webサイト(https://github.com/PHPOffice/PHPExcel)からダウンロードできます。圧縮パッケージを解凍した後、PHPExcel フォルダーをプロジェクトに配置し、PHPExcel の自動読み込みファイルを PHP ファイルに導入します。
require_once 'PHPExcel/Classes/PHPExcel.php';
2. Excel ファイルの作成
PHPExcel を使用して Excel をすばやく作成します。ファイルを作成してデータを書き込みます。以下は、3 行 3 列を含む Excel ドキュメントを作成し、データを書き込むサンプル コードです。
$excel = new PHPExcel(); $excel->setActiveSheetIndex(0); $excel->getActiveSheet()->setCellValue('A1', '姓名') ->setCellValue('B1', '年龄') ->setCellValue('C1', '邮箱'); $excel->getActiveSheet()->setCellValue('A2', '张三') ->setCellValue('B2', 20) ->setCellValue('C2', 'zhangsan@example.com'); $excel->getActiveSheet()->setCellValue('A3', '李四') ->setCellValue('B3', 25) ->setCellValue('C3', 'lisi@example.com'); $excel->getActiveSheet()->setCellValue('A4', '王五') ->setCellValue('B4', 30) ->setCellValue('C4', 'wangwu@example.com'); header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="example.xls"'); header('Cache-Control: max-age=0'); $writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5'); $writer->save('php://output');
このコードでは、$excel という名前の PHPExcel オブジェクトが最初に作成され、次にデフォルトで設定されます。最初のワークシート (インデックス 0)。次に、setCellValue() メソッドを通じてデータを Excel ワークシートに書き込みます。
最後に、出力する Excel ファイルのファイル タイプ、ファイル名、キャッシュ コントロールなどの属性を設定し、PHPExcel_IOFactory のインスタンス オブジェクト $writer を作成して、Excel オブジェクト $excel を出力に書き込みます。
3. Excel ファイルの読み取り
PHPExcel を使用すると、Excel ファイル内のデータを簡単に読み取ることができます。以下は、Excel ファイルを読み取るためのサンプル コードです。
$objReader = PHPExcel_IOFactory::createReader('Excel5'); $objReader->setReadDataOnly(true); $objPHPExcel = $objReader->load("example.xls"); $worksheet = $objPHPExcel->getActiveSheet(); foreach ($worksheet->getRowIterator() as $row) { $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); $columns = []; foreach ($cellIterator as $cell) { $columns[] = $cell->getValue(); } if (count($columns) > 0) { echo implode('|', $columns) . " "; } }
このコードでは、まず PHPExcel_IOFactory クラスの createReader() メソッドを使用して Excel リーダー オブジェクト $objReader を作成し、次に、load() を使用します。 Excel をロードするメソッド example.xls ファイルがメモリにロードされ、最終的に Excel ファイルの最初のワークシートが取得されます。
次に、各行と列のセルを走査し、getValue() メソッドを使用して各セルの値を取得し、各行のすべてのデータを文字列に連結します。
最後に各行のデータを出力します。
4. Excel ファイルのエクスポート
PHPExcel を使用してデータを Excel ファイルにエクスポートします。以下は、MySQL データベースのデータを Excel ファイルにエクスポートするサンプル コードです。
$pdo = new PDO('mysql:host=localhost;dbname=mydatabase', 'username', 'password'); $sql = "SELECT name, age, email FROM users"; $stmt = $pdo->query($sql); $excel = new PHPExcel(); $excel->setActiveSheetIndex(0); $excel->getActiveSheet()->setCellValue('A1', '姓名') ->setCellValue('B1', '年龄') ->setCellValue('C1', '邮箱'); $i = 2; while ($row = $stmt->fetch()) { $excel->getActiveSheet()->setCellValue('A' . $i, $row['name']) ->setCellValue('B' . $i, $row['age']) ->setCellValue('C' . $i, $row['email']); $i++; } header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="users.xls"'); header('Cache-Control: max-age=0'); $writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5'); $writer->save('php://output');
このコードでは、まず PDO オブジェクトを通じて MySQL データベースに接続し、users テーブルのデータをクエリします。次に、$excel という名前の PHPExcel オブジェクトを作成し、各行のデータを Excel オブジェクトに順番に書き込みます。
最後に、出力する Excel ファイルのファイル タイプ、ファイル名、キャッシュ コントロールなどの属性を設定し、PHPExcel_IOFactory のインスタンス オブジェクト $writer を作成して、Excel オブジェクト $excel を出力に書き込みます。
5. 結論
この記事の導入部を通じて、読者は PHPExcel を使用して Excel ファイルを処理する方法を理解できるはずです。 PHPExcel を使用すると、Excel ファイルの読み取り、書き込み、操作が簡単にできると同時に、他のデータ ソース (MySQL データベースなど) から Excel ファイルにデータをエクスポートできます。
PHPExcel はメンテナンスを終了しましたが、成熟した安定した Excel 処理ライブラリとして、依然として多くの PHP プロジェクトで使用でき、参照用の豊富なサンプル コードとドキュメントが提供されています。
以上がPHPExcel を使用して Excel ファイルを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。