PHP生成EXCEL,支持多個SHEET


PHP生成EXCEL,支持多個SHEET

此版本為本人演繹版本,原版本地址http://code.google.com/p/php-excel/

 

php-excel.class.php:

 

<?php
class WorkSheet
{
private $lines = array();
public $sWorksheetTitle;
public function __construct($sWorksheetTitle)
{
$this->setWorksheetTitle($sWorksheetTitle);
}
public function setWorksheetTitle ($title)
{
$title = preg_replace ("/[\\\¦:¦\/¦\?¦\*¦\[¦\]]/", "", $title);
$title = substr ($title, 0, 31);
$this->sWorksheetTitle = $title;
}
public function addRow ($array)
{
$cells = "";
foreach ($array as $k => $v){
$type = 'String';
$v = htmlentities($v, ENT_COMPAT, "UTF-8");
$cells .= "<Cell><Data ss:Type=\"$type\">" . $v . "</Data></Cell>\n";
}
$this->lines[] = "<Row>\n" . $cells . "</Row>\n";
}
public function printline()
{
foreach ($this->lines as $line)
{
echo $line;
}
}
}
class Excel
{
public $worksheets = array();
public function __construct($sWorksheetTitle)
{
$this->addsheet($sWorksheetTitle);
}
public function addsheet($title)
{
$this->worksheets[$title] = new WorkSheet($title);
}
public function generate ($filename = 'excel-export')
{
$filename = preg_replace('/[^aA-zZ0-9\_\-]/', '', $filename);
header("Content-Type: application/vnd.ms-excel; charset=UTF-8");
header("Content-Disposition: inline; filename=\"" . $filename . ".xls\"");
echo stripslashes("<?xml version=\"1.0\" encoding=\"UTF-8\"?\>\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\">");
foreach ($this->worksheets as $worksheet)
{
echo "\n<Worksheet ss:Name=\"" . $worksheet->sWorksheetTitle . "\">\n<Table>\n";
$worksheet->printline();
echo "</Table>\n</Worksheet>\n";
}
echo "</Workbook>";
}
}
?>

 

使用方法:

 

$xls = new Excel('Sheet'); //構造函數,參數為第一個sheet名稱
$xls->worksheets['Sheet']->addRow(array("1","2","3")); //添加一行,數據為1,2,3
$xls->worksheets['Sheet']->addRow(array("1","2","3")); //添加一行,數據為1,2,3
$xls->worksheets['Sheet']->addRow(array("1","2","3")); //添加一行,數據為1,2,3
$xls->worksheets['Sheet']->addRow(array("1","2","3")); //添加一行,數據為1,2,3
$xls->addsheet('Test');//新建一個sheet,參數為sheet名稱
$xls->worksheets['Test']->addRow(array("3","2","3"));//在第二個sheet添加一行
$xls->generate('my-test');//下載excel,參數為文件名


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM