用Simple Excel導(dǎo)出xls實(shí)現(xiàn)方法
更新時(shí)間:2012年12月06日 11:19:21 作者:
因?yàn)榍皫滋鞂懥似恼?,用php-excel-reader類導(dǎo)入excel內(nèi)容,順便說些excel導(dǎo)出問題,需要的朋友可以了解下
因?yàn)榍皫滋鞂懥似恼?,?A href="http://www.dbjr.com.cn/article/32481.htm" target=_blank>php-excel-reader類導(dǎo)入excel內(nèi)容,順便說些excel導(dǎo)出問題,我用的是simple excel,一個(gè)很簡(jiǎn)單的導(dǎo)出xls類,特好用!
simple excel源碼如下:
<?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
*/
class Excel_Xml
{
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\">";
private $footer = "</Workbook>";
private $lines = array();
private $sEncoding;
private $bConvertTypes;
private $sWorksheetTitle;
public function __construct($sEncoding = 'UTF-8', $bConvertTypes = false, $sWorksheetTitle = 'Table1')
{
$this->bConvertTypes = $bConvertTypes;
$this->setEncoding($sEncoding);
$this->setWorksheetTitle($sWorksheetTitle);
}
public function setEncoding($sEncoding)
{
$this->sEncoding = $sEncoding;
}
public function setWorksheetTitle ($title)
{
$title = preg_replace ("/[\\\|:|\/|\?|\*|\[|\]]/", "", $title);
$title = substr ($title, 0, 31);
$this->sWorksheetTitle = $title;
}
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";
}
public function addArray ($array)
{
foreach ($array as $k => $v)
$this->addRow ($v);
}
public function generateXML ($filename = 'excel-export')
{
$filename = preg_replace('/[^aA-zZ0-9\_\-]/', '', $filename);
header("Content-Type: application/vnd.ms-excel; charset=" . $this->sEncoding);
header("Content-Disposition: inline; filename=\"" . $filename . ".xls\"");
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;
}
}
?>
使用php案例如下:
<?php
/**
* @author mckee
* @blog www.phpddt.com
*/
require_once 'excel.class.php';
$xls = new Excel_Xml('UTF-8',false,'測(cè)試');
$data = array(
1 => array('名稱','地址'),
2 => array('php點(diǎn)點(diǎn)通','www.phpddt.com'),
3 => array('百度','www.baidu.com')
);
$xls->addArray($data);
$xls->generateXML('name4test');
?>
導(dǎo)出結(jié)果如下圖:
simple excel源碼如下:
復(fù)制代碼 代碼如下:
<?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
*/
class Excel_Xml
{
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\">";
private $footer = "</Workbook>";
private $lines = array();
private $sEncoding;
private $bConvertTypes;
private $sWorksheetTitle;
public function __construct($sEncoding = 'UTF-8', $bConvertTypes = false, $sWorksheetTitle = 'Table1')
{
$this->bConvertTypes = $bConvertTypes;
$this->setEncoding($sEncoding);
$this->setWorksheetTitle($sWorksheetTitle);
}
public function setEncoding($sEncoding)
{
$this->sEncoding = $sEncoding;
}
public function setWorksheetTitle ($title)
{
$title = preg_replace ("/[\\\|:|\/|\?|\*|\[|\]]/", "", $title);
$title = substr ($title, 0, 31);
$this->sWorksheetTitle = $title;
}
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";
}
public function addArray ($array)
{
foreach ($array as $k => $v)
$this->addRow ($v);
}
public function generateXML ($filename = 'excel-export')
{
$filename = preg_replace('/[^aA-zZ0-9\_\-]/', '', $filename);
header("Content-Type: application/vnd.ms-excel; charset=" . $this->sEncoding);
header("Content-Disposition: inline; filename=\"" . $filename . ".xls\"");
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;
}
}
?>
使用php案例如下:
復(fù)制代碼 代碼如下:
<?php
/**
* @author mckee
* @blog www.phpddt.com
*/
require_once 'excel.class.php';
$xls = new Excel_Xml('UTF-8',false,'測(cè)試');
$data = array(
1 => array('名稱','地址'),
2 => array('php點(diǎn)點(diǎn)通','www.phpddt.com'),
3 => array('百度','www.baidu.com')
);
$xls->addArray($data);
$xls->generateXML('name4test');
?>
導(dǎo)出結(jié)果如下圖:

相關(guān)文章
為PHP安裝imagick時(shí)出現(xiàn)Cannot locate header file MagickWand.h錯(cuò)誤的解決方
這篇文章主要介紹了為PHP安裝imagick時(shí)出現(xiàn)Cannot locate header file MagickWand.h錯(cuò)誤的解決方法,需要的朋友可以參考下2014-11-11PHP框架Laravel學(xué)習(xí)心得體會(huì)
Laravel是一套簡(jiǎn)潔、優(yōu)雅的PHP Web開發(fā)框架 (PHP Web Framework) 。在世界(不含中國(guó))PHP框架的占有率超過40%。下面通過本文給大家分享我的PHP框架Laravel學(xué)習(xí)心得體會(huì),歡迎大家給我留言2015-10-10PHP獲取短鏈接跳轉(zhuǎn)后的真實(shí)地址和響應(yīng)頭信息的方法
這篇文章主要介紹了PHP獲取短鏈接跳轉(zhuǎn)后的真實(shí)地址和響應(yīng)頭信息的方法,本文使用get_headers函數(shù)實(shí)現(xiàn),需要的朋友可以參考下2014-07-07laravel添加角色和模糊搜索功能的實(shí)現(xiàn)代碼
添加角色有很多種方法,角色添加顯示頁面路由、添加頁面控制器等,在角色搜索功能中通過修改index控制器來實(shí)現(xiàn),文中給大家提供laravel添加角色和模糊搜索功能的實(shí)現(xiàn)代碼,一起看看吧2021-06-06ThinkPHP中自定義錯(cuò)誤頁面和提示頁面實(shí)例
這篇文章主要介紹了ThinkPHP中自定義錯(cuò)誤頁面和提示頁面的方法,以一個(gè)完整的實(shí)例形式詳細(xì)講述了ThinkPHP實(shí)現(xiàn)自定義錯(cuò)誤提示與跳轉(zhuǎn)頁面的方法,是非常常見的實(shí)用技巧,需要的朋友可以參考下2014-11-11