Home  >  Article  >  Backend Development  >  Classic example of phpexcel exporting excel

Classic example of phpexcel exporting excel

WBOY
WBOYOriginal
2016-07-25 08:56:071023browse
  1. /**
  2. * phpexcel class library to export excel files
  3. * edit: bbs.it-home.org
  4. *
  5. */
  6. require 'php-excel.class.php' ;//Refer to Google's phpexcel class
  7. $result = mysql_query("SELECT * FROM dingdan"); //Query a data table and return a record set
  8. $data = array( 1 => array ('Order number', 'Line name'),);
  9. while($row = mysql_fetch_array($result)){//Loop the query results to 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, 'Financial Statement');
  14. $xls->addArray($data );
  15. $xls->generateXML('2011010320');
  16. ?>
Copy code

Attached is the phpexcel class php-excel.class.php file code.

  1. class Excel_XML

  2. {
  3. /**
  4. * Header (of document)
  5. * @var string
  6. */
  7. private $header = "/n";
  8. /**
  9. * Footer (of document)
  10. * @var string
  11. */
  12. private $footer = "";
  13. /**
  14. * Lines to output in the excel document
  15. * @var array
  16. */
  17. private $lines = array();
  18. /**
  19. * Used encoding
  20. * @var string
  21. */
  22. private $sEncoding;
  23. /**
  24. * Convert variable types
  25. * @var boolean
  26. */
  27. private $bConvertTypes;
  28. /**
  29. * Worksheet title
  30. * @var string
  31. */
  32. private $sWorksheetTitle;
  33. /**
  34. * Constructor
  35. *
  36. * The constructor allows the setting of some additional
  37. * parameters so that the library may be configured to
  38. * one's needs.
  39. *
  40. * On converting types:
  41. * When set to true, the library tries to identify the type of
  42. * the variable value and set the field specification for Excel
  43. * accordingly. Be careful with article numbers or postcodes
  44. * starting with a '0' (zero)!
  45. *
  46. * @param string $sEncoding Encoding to be used (defaults to GBK)
  47. * @param boolean $bConvertTypes Convert variables to field specification
  48. * @param string $sWorksheetTitle Title for the worksheet
  49. */
  50. public function __construct($sEncoding = 'UTF-8', $bConvertTypes = false, $sWorksheetTitle = 'Table1')
  51. {
  52. $this->bConvertTypes = $bConvertTypes;
  53. $this->setEncoding($sEncoding);
  54. $this->setWorksheetTitle($sWorksheetTitle);
  55. }
  56. /**
  57. * Set encoding
  58. * @param string Encoding type to set
  59. */
  60. public function setEncoding($sEncoding)
  61. {
  62. $this->sEncoding = $sEncoding;
  63. }
  64. /**
  65. * Set worksheet title
  66. *
  67. * Strips out not allowed characters and trims the
  68. * title to a maximum length of 31.
  69. *
  70. * @param string $title Title for worksheet
  71. */
  72. public function setWorksheetTitle ($title)
  73. {
  74. $title = preg_replace ("/[///|:|//|/?|/*|/[|/]]/", "", $title);
  75. $title = substr ($title, 0, 31);
  76. $this->sWorksheetTitle = $title;
  77. }
  78. /**
  79. * Add row
  80. *
  81. * Adds a single row to the document. If set to true, self::bConvertTypes
  82. * checks the type of variable and returns the specific field settings
  83. * for the cell.
  84. *
  85. * @param array $array One-dimensional array with row content
  86. */
  87. private function addRow ($array)
  88. {
  89. $cells = "";
  90. foreach ($array as $k => $v):
  91. $type = 'String';
  92. if ($this->bConvertTypes === true && is_numeric($v)):
  93. $type = 'Number';
  94. endif;
  95. $v = htmlentities($v, ENT_COMPAT, $this->sEncoding);
  96. $cells .= "" . $v . "/n";
  97. endforeach;
  98. $this->lines[] = "/n" . $cells . "/n";
  99. }
  100. /**
  101. * Add an array to the document
  102. * @param array 2-dimensional array
  103. */
  104. public function addArray ($array)
  105. {
  106. foreach ($array as $k => $v)
  107. $this->addRow ($v);
  108. }

  109. /**

  110. * Generate the excel file
  111. * @param string $filename Name of excel file to generate (...xls)
  112. */
  113. public function generateXML ($filename = 'excel-export')
  114. {
  115. // correct/validate filename
  116. $filename = preg_replace('/[^aA-zZ0-9/_/-]/', '', $filename);
  117. // deliver header (as recommended in php manual)
  118. header("Content-Type: application/vnd.ms-excel; charset=" . $this->sEncoding);
  119. header("Content-Disposition: inline; filename=/"" . $filename . ".xls/"");
  120. // print out document to the browser
  121. // need to use stripslashes for the damn ">"
  122. echo stripslashes (sprintf($this->header, $this->sEncoding));
  123. echo "/nsWorksheetTitle . "/">/n/n";
  124. foreach ($this->lines as $line)
  125. echo $line;
  126. echo "
  127. /n
    /n";
  128. echo $this->footer;
  129. }
  130. }
  131. ?>

复制代码


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn