本文实例讲述了PHP实现导出excel数据的类库用法。分享给大家供大家参考,具体如下:
今天一个项目要做一个PHP导出数据用excel保存,在网上找到一个本来是想用PHPexcel的,后来发现太难了,就换了一个但导出的歌声是XML
类写的很简单,但很实用。只能简单的导出字符串和数字二种格式。
如果你有兴趣,你可以拿去扩充了,基本够用。
PHP;">
class Excel_XML
{
//定于私有变量,顶部标签
private $header = "\n底部标签
private $footer = " ";
//定于行数组
private $lines = array();
//设置编码
private $sEncoding;
//设置类型
private $bConvertTypes;
//设置sheet名称
private $sWorksheetTitle;
//构造函数
public function __construct(
$sEncoding = 'UTF-8',$bConvertTypes = false,$sWorksheetTitle = 'Table1')
{
$this->bConvertTypes = $bConvertTypes;
$this->setEncoding($sEncoding);
$this->setWorksheetTitle($sWorksheetTitle);
}
//设置编码,在构造函数里面默认的事UTF-8格式
public function setEncoding($sEncoding)
{
$this->sEncoding = $sEncoding;
}
//设置excel的头
public function setWorksheetTitle ($title)
{
$title = preg_replace ("/[\\\|:|\/|\?|\*|\[|\]]/","",$title);
$title = substr ($title,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'; }
$v = htmlentities($v,ENT_COMPAT,$this->sEncoding);
$cells .= " | \n";
}
$this->lines[] = "\n" . $cells . "
\n"; //写入数组
}
//增加数组
public function addArray ($array)
{
foreach ($array as $k => $v)
{$this->addRow ($v);}
}
//导出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 "\nsWorksheetTitle . "\">\n\n";
foreach ($this->lines as $line)
echo $line;
echo "
\n \n";
echo $this->footer;
}
}
原理很简单,就是把数据数组,读出来,再用XML的标签封上,在用PHP自带的header()函数告诉游览器,就可以了。
调用:
array ('学校名称',"队伍名称")
);
foreach($this->team as $key=>$value)
{
array_push($data,array($key,$value));
}
$xls = new Excel_XML('UTF-8',false,'My Test Sheet'); //实例化函数
$xls->addArray($data);
$xls->generateXML('school'); //导出并设置名称
}
上面是的写一个导出方式。在游览器运行就已经导出数组$this->team 里面的键和值了。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》、《》、《》及《PHP常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://www.f2er.com/php/18780.html