ホームページ  >  記事  >  バックエンド開発  >  PHPでExcelを処理する手順の紹介

PHPでExcelを処理する手順の紹介

巴扎黑
巴扎黑オリジナル
2016-11-08 10:05:211260ブラウズ

PHP で Excel を処理する手順の紹介
遭遇した問題
日常業務では、データベース テーブルを Excel にエクスポートしたり、Excel をデータベース テーブルにインポートしたりする必要がよくあります。この要件はずっと前から実現されており、輸出入を容易にするために、Brothers www.lampbrother.net は記録として 2 つの方法に分けています。

コードの実装
phpexcelクラスライブラリへの参照
phpexcelは強力なExcel処理能力を持っており、packagistで何百万回もダウンロードされていますが、正直に言うと、データ量が大きい場合のExcelの処理速度はまだ非常に遅いです。慎重に使用してください。 packagegist からダウンロードするか、composer require phpoffice/phpexcel を使用して直接ダウンロードした後、phpexcel を使用できるようになります。

Excel へのエクスポート
ほとんどの場合、Excel のエクスポートでは、実際には 2 桁の配列がテーブルに変換されます。

名前空間 PHPExcel を使用します
/**
*/
function exportExcel($name, $ret_data){
$objPHPExcel = new PHPExcel();
//テーブルを設定します
$objPHPExcel->get Properties( )-> setCreator($name) ->setLastModifiedBy($name) ->setTitle("Office 2007 XLSX テスト ドキュメント") ->setSubject("Office 2007 XLSX テスト ドキュメント")
->setDescription("Office 2007 のテスト ドキュメントXLSX、PHP クラスを使用して生成。」)
_data as $key => $row ) {
use using . $objPHPExcel->setActiveSheetIndex( 0)->setCellValue( Cell::stringFromColumnIndex($i). ($num) ), $value2);
jPHPExcel->getActiveSheet()->setTitle ($name); Content-Type: application/vnd.ms-excel');
header("Content-Disposition:attachment;filename) ={$name}.xls");
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') .
header('Cache-Control: キャッシュ、必須再検証'); // HTTP /1.0
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5 ');
$objWriter->save('php://output'); 形式に準拠する必要があります。
関数 getRows($inputFileName)
{
        if (!file_exists($inputFileName)) {
throw new Exception("ファイルが存在しません"); 
}
$inputFileType = PHPExcel_IOFactory::identify($inputFileName); 
$objReader = PHPExcel_IOFactory::createReader($inputFileType); 
$objPHPExcel = $objReader->load($inputFileName); 
$objWorksheet = $objPHPExcel->getActiveSheet(); 
$highestRow = $objWorksheet->getHighestRow(); 
$highestColumn = $objWorksheet->getHighestColumn(); 
$highestColumnIndex = PHPExcel_Cell::columnIndexFromString($highestColumn);//总列数
$row = 1; 
$curr = array(); 
while ($row for ($col = 0; $col $value = str_replace(array("n", "nr", "r"), "", $objWorksheet->getCellByColumnAndRow($col, $row)->getValue()); 
$curr[$row][] = $value; 
}
$row++; 
}
array_shift($curr);//第一行一般は字段名(Excel中列の标题),导入時要移除
return $curr; 
}

その他の
出力時に保存される形式は xlsx ですが、他の形式に変更するには、別のパラメータを入力する必要があります。現在のシートがアクティブシートであることを確認するか、プログラム中にシート名に基づいてシートを選択します。

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