Last active
October 22, 2015 16:58
-
-
Save thomasjao/2d456bb7f29af91e1fac to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
header('Content-type: application/vnd.ms-excel'); | |
header('Content-Disposition: attachment; filename="file.xlsx"'); | |
// PHPExcel 置於 DocumentRoot 的上一層目錄 | |
$path = dirname(dirname(__FILE__)).'/Classes/'; | |
require_once($path.'PHPExcel.php'); | |
require_once($path.'PHPExcel/Writer/Excel2007.php'); | |
$objPHPExcel = new PHPExcel(); | |
// 設定文件 Metadata | |
$objPHPExcel->getProperties()->setCreator('Thomas Jao') | |
->setLastModifiedBy('Thomas Jao') | |
->setTitle('PHPExcel generated MS Office 2007 XLSX File') | |
->setSubject('An Example Program') | |
->setDescription('各種格式設定範例') | |
->setKeywords('office 2007 openxml php') | |
->setCategory('範例'); | |
// 加入資料 | |
$objPHPExcel->setActiveSheetIndex(0); | |
$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello') | |
->setCellValue('A2', true) | |
->setCellValue('A3', false) | |
->setCellValue('B2', 'world!') | |
->setCellValue('C1', '中文不許特別設定') | |
->setCellValue('C2', '函數可以直接串聯使用'); | |
// 以 Loop 加入資料 | |
for ($i=1; $i<200; $i++) { | |
$objPHPExcel->getActiveSheet()->setCellValue('E'.$i, $i); | |
$objPHPExcel->getActiveSheet()->setCellValue('F'.$i, '項目 ' + $i); | |
} | |
// 格式化日期資料 | |
$objPHPExcel->getActiveSheet()->setCellValue('D1’, time()); | |
$objPHPExcel->getActiveSheet()->getStyle('D1'->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDDSLASH); | |
// 加入註解 | |
$objPHPExcel->getActiveSheet()->getComment('E11')->setAuthor('PHPExcel'); | |
$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('PHPExcel'); | |
$objCommentRichText->getFont()->setBold(true); | |
$objPHPExcel->getActiveSheet()->getComment('E11')->getText->createTextRun("\r\n"); | |
$objPHPExcel->getActiveSheet()->getComment('E11')->getText->createTextRun('可以用函數加入註解'); | |
// 合併儲存格 | |
$objPHPExcel->getActiveSheet()->mergeCells('A18:E22'); | |
$objPHPExcel->getActiveSheet()->unMergeCells('A18:E22'); | |
// 保護儲存格 | |
// 設定儲存格格式 | |
$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('E')->setAutoSize(true); | |
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12); | |
// 設定字體 | |
// 設定對齊 | |
$objPHPExcel->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT); | |
// 設定邊界 | |
// 設定邊界顏色 | |
// 設定填滿 | |
// 加入超連結 | |
// 加入圖形 | |
// 加入條件式格式 | |
// 設定自動過濾 | |
// 隱藏欄或列 | |
// 設定文件密碼保護 | |
// 設定工作表密碼保護 | |
// 計算資料 | |
// 設定大綱層級 | |
// 凍結窗格 | |
// 列印時頂端重複列數 | |
// 設定資料驗證 | |
// 建立新工作表於預設工作表後 | |
// 設定頁首及頁尾 | |
// 設定紙張方向及大小 | |
// 重新命名工作表 | |
// 準備輸出 | |
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel); | |
$objWriter->save($path.'PHPExcelOutput.xlsx'); // or | |
$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); | |
// 或者採用類別方法 | |
// require_once($path.'PHPExcel/IOFactory.php'); | |
// $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); | |
// 清除輸出緩衝區內容後,直接輸出成自動下載檔案 | |
ob_end_clean(); | |
$objWriter->save('php://output'); | |
/* | |
PHPExcel Function Reference: http://www.cmsws.com/examples/applications/phpexcel/Documentation/API/elementindex.html | |
*/ | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
** PHPExcel 參考資料 **
PHPExcel 首頁:http://phpexcel.codeplex.com/wikipage?title=Features&referringTitle=Home
PHPExcel 函數參考:http://www.cmsws.com/examples/applications/phpexcel/Documentation/API/elementindex.html