以下にいくつかの使用方法をまとめます
include 'PHPExcel.php';
include 'PHPExcel/Writer/Excel2007.php';
//または出力用の 'PHPExcel/Writer/Excel5.php'
Create Excel
$objPHPExcel = new PHPExcel();
Excel を保存?2007 形式
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
//または $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); 2007 以外の形式
$ objWriter- >save("xxx.xlsx");
ブラウザに直接出力
$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);
header("Pragma: public");
header("Expires: 0″);
header ("Cache-Control:must-revalidate、post-check=0、pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type: application/ vnd.ms-execl");
header("Content-Type:アプリケーション/オクテットストリーム");
header("Content-Type:アプリケーション/ダウンロード");;
header('Content-Disposition:attachment ;ファイル名="resume.xls"');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');
??????? ????????????????????????????
Excel のプロパティを設定します:
Creator
$objPHPExcel->getProperties() ->setCreator(" Maarten Balliauw");
最終更新者
$objPHPExcel->getProperties()->setLastModifiedBy("Maarten Balliauw");
タイトル
$objPHPExcel->getProperties()->setTitle ("Office 2007 XLSX Testドキュメント");
タイトル
$objPHPExcel->getProperties()->setSubject("Office 2007 XLSX テスト ドキュメント");
説明
$objPHPExcel->getProperties()->setDescription ("Office のテスト ドキュメント2007 XLSX、PHP クラスを使用して生成されました。");
Keywords
$objPHPExcel->getProperties()->setKeywords("office 2007 openxml php");
Types
$objPHPExcel-> getProperties()->setCategory (「テスト結果ファイル」);
????????????????????????????????????
現在のシート
$objPHPExcel->setActiveSheetIndex(0);
シートの名前を設定
$objPHPExcel->getActiveSheet()->setTitle('Simple');
セルの名前を設定 値
$objPHPExcel ->getActiveSheet()->setCellValue('A1', 'String');
$objPHPExcel->getActiveSheet()->setCellValue('A2', 12);
$objPHPExcel-> ;getActiveSheet() ->setCellValue('A3', true);
$objPHPExcel->getActiveSheet()->setCellValue('C5', '=SUM(C2:C4)');
$objPHPExcel-> ;getActiveSheet() ->setCellValue('B8', '=MIN(B2:C5)');
セルを結合
$objPHPExcel->getActiveSheet()->mergeCells('A18:E22');
セルを切り離す
$objPHPExcel ->getActiveSheet()->unmergeCells('A28:B28');
セルを保護
$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true) ;ワークシート保護を有効にするには、true に設定します!
$objPHPExcel->getActiveSheet()->protectCells('A3:E13', 'PHPExcel');
形式を設定します
// セル番号の形式を設定します
echo date( 'H:i:s') . " セル番号の形式を設定しますn";
$objPHPExcel->getActiveSheet()->getStyle('E4')->getNumberFormat()->setFormatCode (PHPExcel_Style_NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE) ;
$objPHPExcel->getActiveSheet()->duplicateStyle( $objPHPExcel->getActiveSheet()->getStyle('E4'), 'E5:E13' );
幅を設定
// 列幅を設定
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('D') ->setWidth(12) ;
フォントを設定します
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara');
$objPHPExcel-> ;getActiveSheet()-> getStyle('B1')->getFont()->setSize(20);
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont( )->setBold(true );
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(PHPExcel_Style_Font::UNDERLINE_SINGLE);
$objPHPExcel->getActiveSheet()->getStyle ('B1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
$objPHPExcel->getActiveSheet()->getStyle(' E1')->getFont ()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_WHITE);
$objPHPExcel->getActiveSheet()->getStyle('D13')->getFont() ->setBold(true) ;
$objPHPExcel->getActiveSheet()->getStyle('E13')->getFont()->setBold(true);
整列を設定
$objPHPExcel->getActiveSheet()->getStyle('D11')->getAlignment()->sethorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('D12 ')->getAlignment()->set水平(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('D13')->getAlignment()->sethorizontal(PHPExcel_Style_Alignment: :HORIZONTAL_RIGHT);
$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->sethorizontal(PHPExcel_Style_Alignment::HORIZONTAL_JUSTIFY);
//垂直居中
$objPHPExcel-> getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
配置列の境界線
$objPHPExcel->getActiveSheet()->getStyle('A4 ')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('B4')->getBorders()- >getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('C4')->getBorders()->getTop()->setBorderStyle (PHPExcel_Style_Border::BORDER_THIN);
$objPHPExcel->getActiveSheet()->getStyle('D4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$ objPHPExcel->getActiveSheet()->getStyle('E4')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
設定枠の色
$objPHPExcel-> getActiveSheet()->getStyle('D13')->getBorders()->getLeft()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()- >getStyle('D13')->getBorders()->getTop()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle( 'D13')->getBorders()->getBottom()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('E13') ->getBorders()->getTop()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders ()->getBottom()->getColor()->setARGB('FF993300');
$objPHPExcel->getActiveSheet()->getStyle('E13')->getBorders()-> ;getRight()->getColor()->setARGB('FF993300');
設定充填颜色
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()-> ;setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFill()->getStartColor()->setARGB('FF808080');
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID);
$objPHPExcel->getActiveSheet()->getStyle('B1 ')->getFill()->getStartColor()->setARGB('FF808080');
追加图片
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('ロゴ');
$objDrawing->setDescription('Logo');
$objDrawing->setPath('./images/officelogo.jpg');
$objDrawing->setHeight(36);
$objDrawing->setWorksheet( $objPHPExcel->getActiveSheet());
$objDrawing = new PHPExcel_Worksheet_Drawing();
$objDrawing->setName('Paid');
$objDrawing->setDescription('Paid');
$objDrawing-> ;setPath('./images/paid.png');
$objDrawing->setCoowned('B15');
$objDrawing->setOffsetX(110);
$objDrawing->setRotation(25);
$objDrawing->getShadow()->setVisible(true);
$objDrawing->getShadow()->setDirection(45);
$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()) ;
//处処理中文出问题
必要字符串转化してUTF-8编、通常出出可能、否则中文字符出出を空白にする、如下处理:
$str = iconv('gb2312', 'utf-8' , $str);
または者你可以写一関数数专门处処理中文字符列:
function ConvertUTF8($str)
{
if(empty($str)) return '';
return iconv('gb2312', 'utf -8', $str);
}
//データテーブル出力処理方式
$db = new Mysql($dbconfig);
$sql = "SELECT * FROM 表名";
$row = $db->GetAll($sql); // $row は二维数组
$count = count($row);
for ($i = 2; $i $objPHPExcel->getActiveSheet()- >setCellValue('A' . $i, ConvertUTF8($row[$i-2][1]));
$objPHPExcel->getActiveSheet()->setCellValue('B' . $i, ConvertUTF8($row[$i-2][2]));
$objPHPExcel->getActiveSheet()->setCellValue( 'C' . $i, ConvertUTF8($row[$i-2][3]));
$objPHPExcel->getActiveSheet()->setCellValue('D' . $i, ConvertUTF8($row[$ i-2][4]));
$objPHPExcel->getActiveSheet()->setCellValue('E' . $i, ConvertUTF8(date("Y-m-d", $row[$i-2][5] )));
$objPHPExcel->getActiveSheet()->setCellValue('F' . $i, ConvertUTF8($row[$i-2][6]));
$objPHPExcel->getActiveSheet() ->setCellValue('G' . $i, ConvertUTF8($row[$i-2][7]));
$objPHPExcel->getActiveSheet()->setCellValue('H' . $i, ConvertUTF8 ($row[$i-2][8]));
}
在默认シート後,创建一ワークシート
echo date('H:i:s') 。 " 新しいワークシート オブジェクトを作成しますn";
$objPHPExcel->createSheet();
$objWriter = PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');
$objWriter-save('php://output');