PHP基础/导出Excel
来源:互联网 发布:软件著作权转让协议 编辑:程序博客网 时间:2024/05/17 02:41
Google code
<?php/*** Simple excel generating from PHP5** @package Utilities* @license http://www.opensource.org/licenses/mit-license.php* @author Oliver Schwarz <oliver.schwarz@gmail.com>* @version 1.0*//*** Generating excel documents on-the-fly from PHP5* * Uses the excel XML-specification to generate a native* XML document, readable/processable by excel.* * @package Utilities* @subpackage Excel* @author Oliver Schwarz <oliver.schwarz@vaicon.de>* @version 1.1* * @todo Issue #4: Internet Explorer 7 does not work well with the given header* @todo Add option to give out first line as header (bold text)* @todo Add option to give out last line as footer (bold text)* @todo Add option to write to file*/class Excel_XML{/*** Header (of document)* @var string*/private $header = "<?xml version=\"1.0\" encoding=\"%s\"?\>\n<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\" xmlns:html=\"http://www.w3.org/TR/REC-html40\">";/*** Footer (of document)* @var string*/private $footer = "</Workbook>";/*** Lines to output in the excel document* @var array*/private $lines = array();/*** Used encoding* @var string*/private $sEncoding;/*** Convert variable types* @var boolean*/private $bConvertTypes;/*** Worksheet title* @var string*/private $sWorksheetTitle;/*** Constructor* * The constructor allows the setting of some additional* parameters so that the library may be configured to* one's needs.* * On converting types:* When set to true, the library tries to identify the type of* the variable value and set the field specification for Excel* accordingly. Be careful with article numbers or postcodes* starting with a '0' (zero)!* * @param string $sEncoding Encoding to be used (defaults to UTF-8)* @param boolean $bConvertTypes Convert variables to field specification* @param string $sWorksheetTitle Title for the worksheet*/public function __construct($sEncoding = 'UTF-8', $bConvertTypes = false, $sWorksheetTitle = 'Table1'){$this->bConvertTypes = $bConvertTypes;$this->setEncoding($sEncoding);$this->setWorksheetTitle($sWorksheetTitle);}/*** Set encoding* @param string Encoding type to set*/public function setEncoding($sEncoding){$this->sEncoding = $sEncoding;}/*** Set worksheet title* * Strips out not allowed characters and trims the* title to a maximum length of 31.* * @param string $title Title for worksheet*/public function setWorksheetTitle ($title){$title = preg_replace ("/[\\\|:|\/|\?|\*|\[|\]]/", "", $title);$title = substr ($title, 0, 31);$this->sWorksheetTitle = $title;}/*** Add row* * Adds a single row to the document. If set to true, self::bConvertTypes* checks the type of variable and returns the specific field settings* for the cell.* * @param array $array One-dimensional array with row content*/private function addRow ($array){$cells = "";foreach ($array as $k => $v):$type = 'String';if ($this->bConvertTypes === true && is_numeric($v)):$type = 'Number';endif;$v = htmlentities($v, ENT_COMPAT, $this->sEncoding);$cells .= "<Cell><Data ss:Type=\"$type\">" . $v . "</Data></Cell>\n"; endforeach;$this->lines[] = "<Row>\n" . $cells . "</Row>\n";}/*** Add an array to the document* @param array 2-dimensional array*/public function addArray ($array){foreach ($array as $k => $v)$this->addRow ($v);}/*** Generate the excel file* @param string $filename Name of excel file to generate (...xls)*/public function generateXML ($filename = 'excel-export'){// correct/validate filename$filename = preg_replace('/[^aA-zZ0-9\_\-]/', '', $filename);// deliver header (as recommended in php manual)header("Content-Type: application/vnd.ms-excel; charset=" . $this->sEncoding);header("Content-Disposition: inline; filename=\"" . $filename . ".xls\"");// print out document to the browser// need to use stripslashes for the damn ">"echo stripslashes (sprintf($this->header, $this->sEncoding));echo "\n<Worksheet ss:Name=\"" . $this->sWorksheetTitle . "\">\n<Table>\n";foreach ($this->lines as $line)echo $line;echo "</Table>\n</Worksheet>\n";echo $this->footer;}}?>
使用方法
function create_Excel($content,$table_name){ //$content 是个多维数组 带生成xls的内容 require_once ('ExcelHelper.php'); $table_tabs_name = 'tab1'; $xls = new Excel_XML(); $xls = new Excel_XML('UTF-8', false, $table_tabs_name); $xls->addArray($content); $xls->generateXML($table_name); }
- PHP基础/导出Excel
- php导出excel
- PHP 导出EXCEL报表
- php导出Excel方法
- PHP导出Excel文件
- php导出Excel
- PHP导出Excel
- php导出excel
- PHP导出excel乱码
- PHP导出导入Excel
- php导出excel
- PHP导出EXCEL
- php导出excel乱码
- php导出excel
- php导出excel
- php导出Excel
- php简单导出excel
- PHP导出Excel文件
- linux下的fork()函数
- PHP基础/URL 传递多维数组
- A*算法基本原理
- PHP图片水印函数:支持以图片和文字方式添加水印
- Linux学习1
- PHP基础/导出Excel
- Vim Project插件使用
- LightOJ 1385 Kingdom Division
- C语言关键字volatile(不知道的别说你是干嵌入式的)
- access2007 ODBC 驱动程序下载地址
- WIN7安装Ubuntu12.10以及安装后续,
- PB连接sybase anywhere数据库
- 你不知道的EcmaScript5数组方法
- PB连接access数据库