実際の開発プロセスでは、CSV 形式のデータを Excel 形式 (XLS または XLSX) に変換する必要がある場合があります。 CSV ファイルは単なるテキスト ファイルですが、Excel ファイルはデータのフィルタリング、並べ替え、グラフ表示などのより多くの機能をサポートしているためです。 PHP には CSV や Excel を処理するための強力な関数ライブラリが用意されていますので、PHP を使用して CSV ファイルを Excel ファイルに変換する方法を紹介します。
PHP には、CSV ファイルを読み取り、各行を配列に解析するための fgetcsv() 関数が用意されています。以下は CSV ファイルを読み取る例です。
$csvFile = 'data.csv'; if(!file_exists($csvFile)) { die("File not found"); } $fp = fopen($csvFile, 'r'); if(!$fp) { die("Error opening file"); } $data = array(); while($row = fgetcsv($fp)) { $data[] = $row; } fclose($fp);
このコードは、まず CSV ファイルが存在するかどうかを確認し、次にファイルを開き、 fgetcsv() 関数を使用してファイルの各行を読み取り、結果は配列の中央になります。
PHPExcel は、Excel ファイルを作成および操作するための非常に強力な PHP 拡張機能です。 PHPExcel をダウンロードして、PHP プロジェクトに含めることができます。空の Excel ファイルを作成する方法は次のとおりです。
require_once 'PHPExcel.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getActiveSheet()->setTitle('Sheet1');
このコードは、PHPExcel を使用して空の Excel ファイルを作成し、デフォルトのワークシートを設定します。
PHPExcel の setCellValue() メソッドを使用すると、CSV ファイルのデータを Excel ファイルにインポートできます。 Excel ファイル。以下はサンプル コードです。
require_once 'PHPExcel.php'; $csvFile = 'data.csv'; if(!file_exists($csvFile)) { die("File not found"); } $csvData = file_get_contents($csvFile); $data = array_map("str_getcsv", preg_split('/\r*\n+|\r+/', $csvData)); $objPHPExcel = new PHPExcel(); $objPHPExcel->getActiveSheet()->setTitle('Sheet1'); $row = 1; foreach($data as $fields) { $col = 0; foreach($fields as $value) { $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value); $col++; } $row++; }
このコードは、最初に file_get_contents() 関数を使用して CSV ファイルの内容を読み取り、次に preg_split() 関数を使用してファイルの内容を 2 次元に分割します。配列。次に、PHPExcel の setCellValueByColumnAndRow() 関数を使用して、データを Excel ファイルにインポートします。
最後に、PHPExcel の save() メソッドを使用して、ファイルを XLS または XLSX 形式で保存します。完全なサンプル コードは次のとおりです。
require_once 'PHPExcel.php'; $csvFile = 'data.csv'; if(!file_exists($csvFile)) { die("File not found"); } $csvData = file_get_contents($csvFile); $data = array_map("str_getcsv", preg_split('/\r*\n+|\r+/', $csvData)); $objPHPExcel = new PHPExcel(); $objPHPExcel->getActiveSheet()->setTitle('Sheet1'); $row = 1; foreach($data as $fields) { $col = 0; foreach($fields as $value) { $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value); $col++; } $row++; } $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('data.xls');
このコードは、PHPExcel オブジェクトにデータをインポートし、PHPExcel_IOFactory の createWriter() メソッドを使用して、PHPExcel オブジェクトを XLS 形式のファイルとして保存するための Excel5Writer オブジェクトを生成します。なお、Excel2007形式(XLSX)を使用するには、Excel5をExcel2007に変更する必要があります。
概要
上記は、CSV ファイルを Excel ファイルに変換する完全なプロセスです。まず CSV ファイルを読み取り、次にデータを PHPExcel オブジェクトにインポートし、PHPExcel オブジェクトを Excel ファイルとして保存します。実際のアプリケーションでは、データの整合性と正確性を確保するために、インポートされたデータに対して形式の検証とクリーニングを実行する必要がある場合があることに注意してください。
以上がPHPでCSVをXLSに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。