phpexcel匯出excel的經典實例

WBOY
發布: 2016-07-25 08:56:07
原創
1020 人瀏覽過
  1. /**
  2. * phpexcel類別庫匯出excel檔案
  3. * edit: bbs.it-home.org
  4. *
  5. */
  6. require 'php-excel.class.php';//引用Google的phpexcel 類別
  7. $result = mysql_query("SELECT * FROM dingdan"); //查詢一個資料表,並傳回記錄集
  8. $data = array( 1 => array ('訂單編號', '線路名稱'),);
  9. while($row = mysql_fetch_array($result)){//把查詢的結果循環輸出到EXCEL中
  10. array_push($data,array($row["dd_bh"], $row["dd_xianlu_name"]));
  11. }
  12. // generate file (constructor parameters are optional)
  13. $xls = new Excel_XML('GB2312', false, '財務報表');
  14. $xls->addArray($data);
  15. $xls->generateXML('2011010320');
  16. ?>
? >
複製程式碼

附,phpexcel 類別 php-excel.class.php 檔案程式碼。

  1. 類別 Excel_XML

  2. {
  3. /**
  4. * (文檔的)標題
  5. * @var string
  6. *//n";
  7. /**
  8. * (文件的頁腳)
  9. * @var string
  10. */
  11. private $footer = "";
  12. /**
  13. * Excel 文件中要輸出的行
  14. * @var array
  15. */
  16. private $lines = array();
  17. /**
  18. * 使用的編碼
  19. * @var string
  20. */
  21. private $sEncoding;
  22. /**
  23. * 轉換變數型別
  24. * @var boolean
  25. */
  26. private $bConvertTypes;
  27. /**
  28. * 工作表標題
  29. * @var string
  30. */
  31. private $sWorksheetTitle;
  32. /**
  33. * 建構子
  34. *
  35. * 建構子允許設定一些額外的
  36. * 參數,以便函式庫可以配置為
  37. * 一個人的需要。
  38. *
  39. * On轉換類型:
  40. * 當設定為 true 時,程式庫會嘗試辨識
  41. * 變數值的類型,並相應地設定 Excel
  42. * 的欄位規格。請小心商品編號或郵遞區號
  43. * 以「0」(零)開頭!
  44. *
  45. * @param string $sEncoding 要使用的編碼(預設為GBK)
  46. * @param boolean $bConvertTypes 將變數轉換為欄位規格
  47. * @param string $sWorksheetTitle 工作表的標題
  48. */
  49. public function __construct($sEncoding = 'UTF-8', $ConV-verts = false, $sWorksheetTitle = 'Table1')
  50. {
  51. $this->bConvertTypes = $bConvertTypes;
  52. $this->setEncoding($sEncoding);
  53. $this-setWorksheWorksheet ($sheWorksheet) ($sheartWorksheal ($sheartWorksheet) ($sheartWorksheet) ($sheartWorksheet) ($sheartWorksheet) ($sheartWorksheet) ($sheartWorksheet) ($sheartWorksheet) ($sheartWorksheet)( ) );
  54. }
  55. /**
  56. * 設定編碼
  57. * @param string 要設定的編碼類型
  58. */
  59. public function setEncoding($sEncoding)
  60. {
  61. $this->sEncoding = $sEncoding;
  62. }
  63. /**
  64. * 設定工作表標題
  65. *
  66. * 刪除不允許的字元並將
  67. * 標題修剪為最大長度31。
  68. *
  69. * @param string $title 的標題工作表
  70. */
  71. public function setWorksheetTitle ($title)
  72. {
  73. $title = preg_replace ("/[///|:|//|/ ?|/*|/[|/]]/", "", $title);
  74. $title = substr ($title, 0, 31);
  75. $this->sWorksheetTitle = $title;
  76. }
  77. /**
  78. * 新增行
  79. *
  80. * 在文件中新增一行。如果設定為 true, self::bConvertTypes
  81. * 檢查變數的類型並傳回儲存格的特定欄位設定
  82. *。
  83. *
  84. * @param array $array 一維數組行內容
  85. */
  86. private function addRow ($array)
  87. {
  88. $cells = "";
  89. foreach ($array as $k = => ; $v):
  90. $type = 'String';
  91. if ($this->bConvertTypes === true && is_numeric($v)):
  92. $type = '數字';
  93. endif;
  94. $v = htmlentities($v, ENT_COMPAT, $this->sEncoding);
  95. $cells .= "; 」 。 v。 ";
  96. }
  97. /**
  98. * 在文件中新增陣列
  99. * @param array 二維陣列
  100. */
  101. public function addArray ($array)
  102. {
  103. foreach ($array as $k = > $v)
  104. $ this->addRow ($v);
  105. }
  106. /**

  107. * 產生 excel 檔案
  108. * @param string $filename 要產生的 excel 檔案的名稱 (...xls)
  109. */
  110. public functiongenerateXML ($filename = 'excel-export')
  111. {
  112. // 修正/驗證檔名
  113. $filename = preg_replace('/[^aA -zZ0-9/_/-]/', '', $filename);
  114. // 傳遞標頭(按照php 手冊中的建議)
  115. header("Content-Type: application/vnd. ms-excel; charset=" . $this->sEncoding);
  116. header("Content-Disposition: inline; filename=/"" . $filename . ". xls/"");
  117. //將文件印到瀏覽器
  118. // 需要使用該死的「>」
  119. echo stripslashes (sprintf($this->header, $this->sEncoding)) ;
  120. echo "/nsWorksheetTitle . "/">/n/n";
  121. foreach ($this->lines as $line )
  122. echo $line;
  123. echo "
  124. /n
    /n";
  125. echo $this->footer;
  126. }
  127. }
  128. ?> ;
複製程式碼


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板