ホームページ  >  記事  >  バックエンド開発  >  PHPExcelを使用してExcel形式のファイルをインポートおよびエクスポートする

PHPExcelを使用してExcel形式のファイルをインポートおよびエクスポートする

WBOY
WBOYオリジナル
2016-06-13 13:12:06900ブラウズ

PHPExcel を使用して Excel 形式のファイルをインポートおよびエクスポートします
PHPExcel を使用して Excel 形式ファイルをインポートおよびエクスポートします
作成者: zccst

エクスポートの使用頻度が高いため、エクスポートの実装プロセスは次のとおりです。

最初のステップは、PHPExcel のソース コードをプロジェクトのライブラリにコピーすることです

ファイルには、PHPExcel.php と PHPExcel フォルダーが含まれます
ソース コードについては、添付ファイルを参照してください

注 1: ソース コードは zip 形式であり、Windows と Linux で使用できます。
注 2: PHPExcel.zip はクリーンなコードなので、直接引用できます。 PHPExcel2.zip には svn レコードが含まれているため、直接参照には適していません。

ステップ 2: エクスポートする必要があるハンドラー ページで

1 を参照し、ヘッダーに 3 つのファイル

//设置环境变量(新增PHPExcel)
set_include_path('.'. PATH_SEPARATOR . Yii::app()->basePath.'/lib/PHPExcel' . PATH_SEPARATOR . get_include_path());
//注:在yii中,也可以直接Yii::import(“application.lib.PHPExcel.*”);

//引入PHPExcel相关文件
require_once "PHPExcel.php";
require_once 'PHPExcel/IOFactory.php';
require_once 'PHPExcel/Writer/Excel5.php';


2 を導入し、データ Excel テーブル
//新建
$resultPHPExcel	= new PHPExcel();

//设置参数

//设值
$resultPHPExcel->getActiveSheet()->setCellValue('A1', '季度');
$resultPHPExcel->getActiveSheet()->setCellValue('B1', '名称');
$resultPHPExcel->getActiveSheet()->setCellValue('C1', '数量');
$i = 2;
foreach($data as $item){
	$resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $item['quarter']);
	$resultPHPExcel->getActiveSheet()->setCellValue('B' . $i, $item['name']);
	$resultPHPExcel->getActiveSheet()->setCellValue('C' . $i, $item['number']);
	$i ++;
}


3 を入力し、エクスポートされたパラメーターをいくつか設定します
バージョン 1:
//设置导出文件名
$outputFileName = 'total.xls';
$xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel);
//ob_start();  ob_flush();
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outputFileName.'"');
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");

$xlsWriter->save( "php://output" );


バージョン 2:
$writer = PHPExcel_IOFactory::createWriter($resultPHPExcel, 'Excel5');
$writer->setTempDir(Yii::app()->basePath.'/runtime');
$filename = "单.xls";
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="' . $filename . '"');
header('Cache-Control: max-age=0');
$writer->save('php://output');


4、添付ファイルの追加 (必須ではありません)
$objPHPExcel 	= new PHPExcel();
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);

foreach($data2 as $item){
	$fp = dirname(__FILE__) . "/../../../" . $item['file_path'] ;
	$objPHPExcel = $objReader->load($fp);
	$objWorksheet = $objPHPExcel->getActiveSheet();
	$resultPHPExcel->addExternalSheet($objWorksheet);
}



高度なテーマ
1、excel5 と Excel2007 の違い
zipArchive .php
excel2007に対応していないphp(php.ini)も多いため、excel5の使用を推奨します。


2、一時ファイルの場所を設定します
一時ファイル名が間違っている場合は、一時ファイルのパスを変更します
xlsWriter.setDirName(Yii::app()->basePath. '/ runtime');


3、Excel セルの形式を設定します
フィルター

4、出力が間違っています。
Default $xlsWriter->save( "php://output" ); キャッシュが足りないため表示が不完全になる可能性があるので、次のように転送します。 🎜 >その他の設定については、以下を参照してください:
http://www.zeali.net/entry/556
$finalFileName = (Yii::app()->basePath.'/runtime/'.time().'.xls';
$xlsWriter->save($finalFileName);
echo file_get_contents($finalFileName);  //file_get_contents() 函数把整个文件读入一个字符串中。和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串。


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