/**
* PHPEXCELはExcelファイルを生成します
* @作者:しっかり
* @desc は、行と列のデータから Excel ファイルを生成することをサポートしていますが、セルのスタイルと配置はまだ追加されていません
*/
require_once 'ライブラリ/PHPExcel.php';
require_once 'ライブラリ/PHPExcel/Reader/Excel2007.php';
require_once 'ライブラリ/PHPExcel/Reader/Excel5.php';
include_once 'ライブラリ/PHPExcel/IOFactory.php';
$fileName = "test_excel";
$headArr = array("最初の列", "2番目の列", "3番目の列");
$data = 配列(配列(1,2),配列(1,3),配列(5,7));
getExcel($fileName,$headArr,$data);
関数 getExcel($fileName,$headArr,$data){
If(空($data) || !is_array($data)){
die("データは配列である必要があります");
}
If(空($ファイル名)){
終了します;
}
$date = date("Y_m_d",time());
$fileName .= "_{$date}.xlsx";
//新しい PHPExcel オブジェクトを作成します
$objPHPExcel = 新しい PHPExcel();
$objProps = $objPHPExcel->getProperties();
//ヘッダーを設定します
$key = ord("A");
foreach($headArr as $v){
$colum = chr($key);
$objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
$key += 1;
}
$column = 2;
$objActSheet = $objPHPExcel->getActiveSheet();
Foreach($data as $key => $rows){ //行を書き込みます
$span = ord("A");
foreach($rows as $keyName=>$value){// 列の書き込み
$j = chr($span);
$objActSheet->setCellValue($j.$column, $value);
$span++;
}
$column++;
}
$fileName = iconv("utf-8", "gb2312", $fileName);
//テーブルの名前を変更します
$objPHPExcel->getActiveSheet()->setTitle('Simple');
//アクティブな注文インデックスを最初のテーブルに設定するので、これが Excel を開いたときの最初のテーブルになります
$objPHPExcel->setActiveSheetIndex(0);
// 出力をクライアント Web ブラウザー (Excel2007) にリダイレクトします
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Disposition:attachment; filename="$fileName"");
header('キャッシュ制御: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
If(!empty($_GET['excel'])){
$objWriter->save('php://output') // ファイルはブラウザ経由でダウンロードされます ;
}その他{
$objWriter->save($fileName); // スクリプトモードで実行し、現在のディレクトリに保存します
}
終了します;
}
|