php导出excel类,PHP实现导出excel数据的类库用法示例

本文实例讲述了PHP实现导出excel数据的类库用法。分享给大家供大家参考,具体如下:

今天一个项目要做一个PHP导出数据用excel保存,在网上找到一个本来是想用phpexcel的,后来发现太难了,就换了一个但导出的歌声是XML

类写的很简单,但很实用。只能简单的导出字符串和数字二种格式。

如果你有兴趣,你可以拿去扩充了,基本够用。

class Excel_XML

{

//定于私有变量,顶部标签

private $header = "<?xml version=\"1.0\" encoding=\"%s\"?\>\n

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 = "

";

//定于行数组

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, 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'; }

$v = htmlentities($v, ENT_COMPAT, $this->sEncoding);

$cells .= "" . $v . "\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

foreach ($this->lines as $line)

echo $line;

echo "

\n\n";

echo $this->footer;

}

}

原理很简单,就是把数据数组,读出来,再用XML的标签封上,在用php自带的header()函数告诉游览器,就可以了。

调用:

public function import()

{

$data = array(

1 => 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程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值