欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP實(shí)現(xiàn)導(dǎo)出excel數(shù)據(jù)的類(lèi)庫(kù)用法示例

 更新時(shí)間:2016年10月15日 11:32:39   作者:dengwz7788  
這篇文章主要介紹了PHP實(shí)現(xiàn)導(dǎo)出excel數(shù)據(jù)的類(lèi)庫(kù)用法,結(jié)合實(shí)例形式分析了php操作Excel數(shù)據(jù)的讀取與導(dǎo)出操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了PHP實(shí)現(xiàn)導(dǎo)出excel數(shù)據(jù)的類(lèi)庫(kù)用法。分享給大家供大家參考,具體如下:

今天一個(gè)項(xiàng)目要做一個(gè)PHP導(dǎo)出數(shù)據(jù)用excel保存,在網(wǎng)上找到一個(gè)本來(lái)是想用phpexcel的,后來(lái)發(fā)現(xiàn)太難了,就換了一個(gè)但導(dǎo)出的歌聲是XML

類(lèi)寫(xiě)的很簡(jiǎn)單,但很實(shí)用。只能簡(jiǎn)單的導(dǎo)出字符串和數(shù)字二種格式。

如果你有興趣,你可以拿去擴(kuò)充了,基本夠用。

class Excel_XML
{
//定于私有變量,頂部標(biāo)簽
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\">";
//底部標(biāo)簽
private $footer = "</Workbook>";
//定于行數(shù)組
private $lines = array();
//設(shè)置編碼
private $sEncoding;
//設(shè)置類(lèi)型
private $bConvertTypes;
//設(shè)置sheet名稱(chēng)
private $sWorksheetTitle;
//構(gòu)造函數(shù)
public function __construct(
 $sEncoding = 'UTF-8',$bConvertTypes = false,$sWorksheetTitle = 'Table1')
{
$this->bConvertTypes = $bConvertTypes;
$this->setEncoding($sEncoding);
$this->setWorksheetTitle($sWorksheetTitle);
}
//設(shè)置編碼,在構(gòu)造函數(shù)里面默認(rèn)的事UTF-8格式
public function setEncoding($sEncoding)
{
$this->sEncoding = $sEncoding;
}
//設(shè)置excel的頭
public function setWorksheetTitle ($title)
{
$title = preg_replace ("/[\\\|:|\/|\?|\*|\[|\]]/", "", $title);
$title = substr ($title, 0, 31);
$this->sWorksheetTitle = $title;
}
//增加行函數(shù)(關(guān)鍵函數(shù))
private function addRow ($array)
{
$cells = ""; //設(shè)置每個(gè)單元為空
foreach ($array as $k => $v)
{
 $type = 'String'; //默認(rèn)類(lèi)型是字符串
 if ($this->bConvertTypes === true && is_numeric($v)): //判斷類(lèi)型
 { $type = 'Number'; }
 $v = htmlentities($v, ENT_COMPAT, $this->sEncoding);
 $cells .= "<Cell><Data ss:Type=\"$type\">" . $v . "</Data></Cell>\n";
}
 $this->lines[] = "<Row>\n" . $cells . "</Row>\n"; //寫(xiě)入數(shù)組
}
//增加數(shù)組
public function addArray ($array)
{
foreach ($array as $k => $v)
 {$this->addRow ($v);}
}
//導(dǎo)出xml
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;
}
}

原理很簡(jiǎn)單,就是把數(shù)據(jù)數(shù)組,讀出來(lái),再用XML的標(biāo)簽封上,在用php自帶的header()函數(shù)告訴游覽器,就可以了。

調(diào)用:

public function import()
{
 $data = array(
 1 => array ('學(xué)校名稱(chēng)',"隊(duì)伍名稱(chēng)")
 );
 foreach($this->team as $key=>$value)
 {
  array_push($data,array($key, $value));
 }
 $xls = new Excel_XML('UTF-8', false, 'My Test Sheet'); //實(shí)例化函數(shù)
 $xls->addArray($data);
 $xls->generateXML('school'); //導(dǎo)出并設(shè)置名稱(chēng)
}

上面是的寫(xiě)一個(gè)導(dǎo)出方式。在游覽器運(yùn)行就已經(jīng)導(dǎo)出數(shù)組$this->team 里面的鍵和值了。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php操作office文檔技巧總結(jié)(包括word,excel,access,ppt)》、《PHP數(shù)組(Array)操作技巧大全》、《php排序算法總結(jié)》、《PHP常用遍歷算法與技巧總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《php正則表達(dá)式用法總結(jié)》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論