-
-
include("./class/class.php"); // 包含class的基本頭檔
- include("./class/phpexcel/PHPExcel.php"); // 產生excel的基本類別定義(注意文件名稱的大小寫)
// 如果直接輸出excel文件,則要包含此檔案
- include("./class/phpexcel/PHPExcel/IOFactory.php");
// 建立phpexcel對象,此物件包含輸出的內容及格式
- $m_objPHPExcel = new PHPExcel();
// 範本文件,為了實現格式與內容分離,有關輸出文件具體內容實現在範本文件中
- // 範本文件將物件$m_objPHPExcel進行操作
- include("./include/excel.php");
// 輸出檔案的類型,excel或pdf
- $m_exportType = "excel" ;
$m_strOutputExcelFileName = date('Y-m-j_H_i_s').".xls"; // 輸出EXCEL檔名
- $m_strOutputPdfFileName = date('Y-m-j_H_i_s')." .pdf"; // 輸出PDF檔名
// PHPExcel_IOFactory, 輸出excel
- //require_once dirname(__FILE__).'/Classes/PHPExcel/IOFactory.php';'; p>
// 如果需要輸出EXCEL格式
- if($m_exportType=="excel"){
- $objWriter = PHPExcel_IOFactory::createWriter($m_objPHPExcel, 'Excel5'); p>
// 從瀏覽器直接輸出$m_strOutputExcelFileName
- 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-excel;");
- header("Content-Type:application/octet-stream");
- header("Content-Type:application/download");
- header("Content- Disposition:attachment;filename=".$m_strOutputExcelFileName);
- header("Content-Transfer-Encoding:binary");
- $objWriter->save("php://output");
- }
// 如果需要輸出PDF格式
- if($m_exportType=="pdf"){
- $objWriter = PHPExcel_IOFactory::createWriter($m_objPHPExcel, 'PDF');
- $objWriter->setSheetIndex(0);
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 /pdf");
- header("Content-Type:application/octet-stream");
- header("Content-Type:application/download");
- header("Content-Disposition:attachment ;filename=".$m_strOutputPdfFileName);
- header("Content-Transfer-Encoding:binary");
- $objWriter->save("php://output");
- }
- ?>
-
複製程式碼
2、範本文件內容(附加常用操作)
-
-
global $m_objPHPExcel; // 由外部檔案定義
// 設定基本屬性
- $m_objPHPExcel->getProperties()->setCreator("Sun Star Data Center")
- ->setLastModifiedBy("Sun Star Data Center")
- ->setTitle("Microsoft Office Excel Document")
- ->setSubject("Test Data Report -- From Sunstar Data Center")
- ->setDescription("LD Test Data Report, Generate by Sunstar Data Center")
- ->setKeywords( "sunstar ld report")
- ->setCategory("Test result file");
// 建立多個工作薄
- $sheet1 = $m_objPHPExcel->createSheet() ;
- $sheet2 = $m_objPHPExcel->createSheet();
// 透過操作索引即可操作對應的工作薄
- // 只需設定要操作的工作簿索引為目前活動工作簿,如
- // $m_objPHPExcel->setActiveSheetIndex(0);
// 設定第一個工作簿為活動工作簿
- $m_objPHPExcel- >setActiveSheetIndex(0);
// 設定活動工作簿名稱
- // 如果是中文一定要使用iconv函數轉換編碼
- $m_objPHPExcel->getActiveSheet()-> setTitle(iconv('gbk', 'utf-8', '測試工作簿'));
// 設定預設字體和大小
- $m_objPHPExcel->getDefaultStyle()- >getFont()->setName(iconv('gbk', 'utf-8', '宋體'));
- $m_objPHPExcel->getDefaultStyle()->getFont()->setSize(10); p>
// 設定一列的寬度
- $m_objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);
/ / 設定一行的高度
- $m_objPHPExcel->getActiveSheet()->getRowDimension('6')->setRowHeight(30);
// 合併儲存格
- $m_objPHPcelm_objPHPExcel ->getActiveSheet()->mergeCells('A1:P1');
// 定義一個樣式,加粗,居中
- $styleArray1 = array(
- 'font' => array(
- 'bold' => true,
- 'color'=>array(
- 'argb' => '00000000',
- ),
- ),
'alignment' => array(
- 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
- ),
- );
// 將樣式。應用於A1單元格
- $m_objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray($styleArray1);
// 設定單元格樣式(黑色字體)
- $m_objPHPExcel->getActiveSheet()->getStyle('H5')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLACK); // 黑色
- // 設定單元格格式(背景)
- $m_objPHPExcel->getActiveSheet()->getStyle('H5')->getFill()->getStartColor()->setARGB('00ff99cc'); //將背景設為淺粉紅色
// 設定儲存格格式(數位格式)
- $m_objPHPExcel->getActiveSheet()->getStyle('F1')->getNumberFormat()- >setFormatCode('0.000');
// 在特定單元格中寫入內容
- $m_objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello Baby' );
// 設定單元格樣式(居中)
- $m_objPHPExcel->getActiveSheet()->getStyle('H5')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment:Style_Alignment: :HORIZONTAL_CENTER);
// 放入圖片給儲存格, 將資料圖片放在J1儲存格內
- $objDrawing = new PHPExcel_Worksheet_Drawing();
- $objDrawing-$objDrawing-$objDrawing-$objDrawing-$objDrawing-$objDrawing-$objDrawing-$objDrawing-$objDrawing >setName('Logo');
- $objDrawing->setDescription('Logo');
- $objDrawing->setPath("../logo.jpg"); // 圖片路徑,只能是相對路徑
- $objDrawing->setWidth(400); // 圖片寬度
- $objDrawing->setHeight(123); // 圖片高度
- $objDrawing->setCoordinates('J1');//單元格
- $objDrawing->setWorksheet($m_objPHPExcel->getActiveSheet());
// 設定A5單元格內容並增加超連結
- $m_objPHPExcel->getActiveSheet() ->setCellValue('A5', iconv('gbk', 'utf-8', '超連結jbxue.com'));
- $m_objPHPExcel->getActiveSheet()->getCell('A5')-> getHyperlink()->setUrl('http://bbs.it-home.org/');
- ?>
-
複製程式碼
3、在伺服器端產生靜態文件
相較於直接生成,這兩種方法的主要區別是生成格式的不同,模板檔案完全相同,下邊是一個在上例基礎上更改後的樣子,注意與上例的區別。
-
-
// 包含class的基本頭檔
- include("./class/class. php");
// 產生excel的基本類別定義(注意檔案名稱的大小寫)
- include("./class/phpexcel/PHPExcel.php");
- // 包含寫Excel5格式的文件,若需要產生excel2007的文件,包含對應的Writer即可
- include("./class/phpexcel/PHPExcel/Writer/Excel5.php");
- //包含寫入PDF格式檔案
- include("./class/phpexcel/PHPExcel/Writer/PDF.php");
// 建立phpexcel對象,此物件包含輸出的內容及格式
- $m_objPHPExcel = new PHPExcel();
// 模板文件,為了實現格式與內容分離,有關輸出文件具體內容實現在模板文件中
- // 模板檔案將物件$m_objPHPExcel進行操作
- include("./include/excel.php");
// 輸出檔案的類型,excel或pdf
- $m_exportType = " pdf";
$m_strOutputExcelFileName = date('Y-m-j_H_i_s').".xls"; // 輸出EXCEL檔名
- $m_strOutputPdfFileName = date('Y-m-j_H_Y-m-j)' .".pdf"; // 輸出PDF檔名
// 輸出檔儲存路徑,此路徑必須可寫
- $m_strOutputPath = "./output/";
// 如果需要輸出EXCEL格式
- if($m_exportType=="excel"){
- $objWriter = new PHPExcel_Writer_Excel5($m_objPHPExcel);
- $objriter-> $m_strOutputPath.$m_strOutputExcelFileName);
- }
// 如果需要輸出PDF格式
- if($m_exportType=="pdf"){
- $objWriter = new PHPExcel_Writer_PDF ($m_objPHPExcel);
- $objWriter->save($m_strOutputPath.$m_strOutputPdfFileName);
- }
- ?>
-
複製碼🎜> >
|