phpexcel快速開發指南(不錯)

來源:互聯網
上載者:User
  1. include("./class/class.php"); // 包含class的基本標頭檔

  2. include("./class/phpexcel/PHPExcel.php"); // 產生excel的基本類定義(注意檔案名稱的大小寫)

  3. // 如果直接輸出excel檔案,則要包含此檔案

  4. include("./class/phpexcel/PHPExcel/IOFactory.php");

  5. // 建立phpexcel對象,此對象包含輸出的內容及格式

  6. $m_objPHPExcel = new PHPExcel();

  7. // 模板檔案,為了實現格式與內容分離,有關輸出檔案具體內容實現在模板檔案中

  8. // 模板檔案將對象$m_objPHPExcel進行操作
  9. include("./include/excel.php");

  10. // 輸出檔案的類型,excel或pdf

  11. $m_exportType = "excel";

  12. $m_strOutputExcelFileName = date('Y-m-j_H_i_s').".xls"; // 輸出EXCEL檔案名稱

  13. $m_strOutputPdfFileName = date('Y-m-j_H_i_s').".pdf"; // 輸出PDF檔案名稱

  14. // PHPExcel_IOFactory, 輸出excel

  15. //require_once dirname(__FILE__).'/Classes/PHPExcel/IOFactory.php';

  16. // 如果需要輸出EXCEL格式

  17. if($m_exportType=="excel"){
  18. $objWriter = PHPExcel_IOFactory::createWriter($m_objPHPExcel, 'Excel5');

  19. // 從瀏覽器直接輸出$m_strOutputExcelFileName

  20. header("Pragma: public");
  21. header("Expires: 0");
  22. header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
  23. header("Content-Type:application/force-download");
  24. header("Content-Type: application/vnd.ms-excel;");
  25. header("Content-Type:application/octet-stream");
  26. header("Content-Type:application/download");
  27. header("Content-Disposition:attachment;filename=".$m_strOutputExcelFileName);
  28. header("Content-Transfer-Encoding:binary");
  29. $objWriter->save("php://output");
  30. }

  31. // 如果需要輸出PDF格式

  32. if($m_exportType=="pdf"){
  33. $objWriter = PHPExcel_IOFactory::createWriter($m_objPHPExcel, 'PDF');
  34. $objWriter->setSheetIndex(0);

  35. header("Pragma: public");

  36. header("Expires: 0");
  37. header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
  38. header("Content-Type:application/force-download");
  39. header("Content-Type: application/pdf");
  40. header("Content-Type:application/octet-stream");
  41. header("Content-Type:application/download");
  42. header("Content-Disposition:attachment;filename=".$m_strOutputPdfFileName);
  43. header("Content-Transfer-Encoding:binary");
  44. $objWriter->save("php://output");
  45. }
  46. ?>

複製代碼

2、模板檔案內容(附加常用操作)

  1. global $m_objPHPExcel; // 由外部檔案定義

  2. // 設定基本屬性

  3. $m_objPHPExcel->getProperties()->setCreator("Sun Star Data Center")
  4. ->setLastModifiedBy("Sun Star Data Center")
  5. ->setTitle("Microsoft Office Excel Document")
  6. ->setSubject("Test Data Report -- From Sunstar Data Center")
  7. ->setDescription("LD Test Data Report, Generate by Sunstar Data Center")
  8. ->setKeywords("sunstar ld report")
  9. ->setCategory("Test result file");

  10. // 建立多個工作薄

  11. $sheet1 = $m_objPHPExcel->createSheet();
  12. $sheet2 = $m_objPHPExcel->createSheet();

  13. // 通過操作索引即可操作對應的工作薄

  14. // 只需設定要操作的活頁簿索引為當前活動活頁簿,如
  15. // $m_objPHPExcel->setActiveSheetIndex(0);

  16. // 設定第一個活頁簿為活動活頁簿

  17. $m_objPHPExcel->setActiveSheetIndex(0);

  18. // 設定活動活頁簿名稱

  19. // 如果是中文一定要使用iconv函數轉換編碼
  20. $m_objPHPExcel->getActiveSheet()->setTitle(iconv('gbk', 'utf-8', '測試活頁簿'));

  21. // 設定預設字型和大小

  22. $m_objPHPExcel->getDefaultStyle()->getFont()->setName(iconv('gbk', 'utf-8', '宋體'));
  23. $m_objPHPExcel->getDefaultStyle()->getFont()->setSize(10);

  24. // 設定一列的寬度

  25. $m_objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);

  26. // 設定一行的高度

  27. $m_objPHPExcel->getActiveSheet()->getRowDimension('6')->setRowHeight(30);

  28. // 合併儲存格

  29. $m_objPHPExcel->getActiveSheet()->mergeCells('A1:P1');

  30. // 定義一個樣式,加粗,置中

  31. $styleArray1 = array(
  32. 'font' => array(
  33. 'bold' => true,
  34. 'color'=>array(
  35. 'argb' => '00000000',
  36. ),
  37. ),

  38. 'alignment' => array(

  39. 'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER,
  40. ),
  41. );

  42. // 將樣式應用於A1儲存格

  43. $m_objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray($styleArray1);

  44. // 設定儲存格樣式(黑色字型)

  45. $m_objPHPExcel->getActiveSheet()->getStyle('H5')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_BLACK); // 黑色

  46. // 設定儲存格格式(背景)

  47. $m_objPHPExcel->getActiveSheet()->getStyle('H5')->getFill()->getStartColor()->setARGB('00ff99cc'); // 將背景設定為淺粉色

  48. // 設定儲存格格式(數字格式)

  49. $m_objPHPExcel->getActiveSheet()->getStyle('F1')->getNumberFormat()->setFormatCode('0.000');

  50. // 給特定儲存格中寫入內容

  51. $m_objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello Baby');

  52. // 設定儲存格樣式(置中)

  53. $m_objPHPExcel->getActiveSheet()->getStyle('H5')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);

  54. // 給儲存格中放入圖片, 將資料圖片放在J1儲存格內

  55. $objDrawing = new PHPExcel_Worksheet_Drawing();
  56. $objDrawing->setName('Logo');
  57. $objDrawing->setDescription('Logo');
  58. $objDrawing->setPath("../logo.jpg"); // 圖片路徑,只能是相對路徑
  59. $objDrawing->setWidth(400); // 圖片寬度
  60. $objDrawing->setHeight(123); // 圖片高度
  61. $objDrawing->setCoordinates('J1');//儲存格
  62. $objDrawing->setWorksheet($m_objPHPExcel->getActiveSheet());

  63. // 設定A5儲存格內容並增加超連結

  64. $m_objPHPExcel->getActiveSheet()->setCellValue('A5', iconv('gbk', 'utf-8', '超連結jbxue.com'));
  65. $m_objPHPExcel->getActiveSheet()->getCell('A5')->getHyperlink()->setUrl('http://bbs.it-home.org/');
  66. ?>

複製代碼

3、在伺服器端產生靜態檔案相比直接產生,這兩種方法的主要區別是產生格式的不同,模板檔案完全相同,下邊是一個在上例基礎上更改後的樣子,注意與上例的區別。

  1. // 包含class的基本標頭檔

  2. include("./class/class.php");

  3. // 產生excel的基本類定義(注意檔案名稱的大小寫)

  4. include("./class/phpexcel/PHPExcel.php");
  5. // 包含寫Excel5格式的檔案,如果需要產生excel2007的檔案,包含對應的Writer即可
  6. include("./class/phpexcel/PHPExcel/Writer/Excel5.php");
  7. // 包含寫PDF格式檔案
  8. include("./class/phpexcel/PHPExcel/Writer/PDF.php");

  9. // 建立phpexcel對象,此對象包含輸出的內容及格式

  10. $m_objPHPExcel = new PHPExcel();

  11. // 模板檔案,為了實現格式與內容分離,有關輸出檔案具體內容實現在模板檔案中

  12. // 模板檔案將對象$m_objPHPExcel進行操作
  13. include("./include/excel.php");

  14. // 輸出檔案的類型,excel或pdf

  15. $m_exportType = "pdf";

  16. $m_strOutputExcelFileName = date('Y-m-j_H_i_s').".xls"; // 輸出EXCEL檔案名稱

  17. $m_strOutputPdfFileName = date('Y-m-j_H_i_s').".pdf"; // 輸出PDF檔案名稱

  18. // 輸出檔案儲存路徑,此路徑必須可寫

  19. $m_strOutputPath = "./output/";

  20. // 如果需要輸出EXCEL格式

  21. if($m_exportType=="excel"){
  22. $objWriter = new PHPExcel_Writer_Excel5($m_objPHPExcel);
  23. $objWriter->save($m_strOutputPath.$m_strOutputExcelFileName);
  24. }

  25. // 如果需要輸出PDF格式

  26. if($m_exportType=="pdf"){
  27. $objWriter = new PHPExcel_Writer_PDF($m_objPHPExcel);
  28. $objWriter->save($m_strOutputPath.$m_strOutputPdfFileName);
  29. }
  30. ?>

複製代碼
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.