不用说,这个功能很常见,也很实用,一个web平台做的好的话,可以为使用者省去不少事情,比如说根据用户填写的数据自动生成word文档。
这两天有人需要,我也就闲着做了个简单的demo,代码也是从网上搜罗了些,网上的文章大多比较乱,就在这里稍微记录一下。
1、纯php生成,用到了ob_start()和ob_get_contents(),用法是ob_start()生成后,在header之后的echo语句会存储在缓冲区,ob_get_contents()用来获取缓冲区的数据。<?php
class word
{
function start()
{
ob_start();
print'
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">';
}
function save($path)
{
/*This echo will output to word.*/
echo "something";
/**/
print "";
$data = ob_get_contents();
ob_end_clean();
$this->wirtefile ($path,$data);
}
function wirtefile ($fn,$data)
{
$fp=fopen($fn,"wb");
fwrite($fp,$data);
fclose($fp);
}
}
$word=new word;
$word->start();
echo $cout;
$wordname="word/客户.doc";
$word->save($wordname);
?>
2、将HTML网页自动保存到word,主要是一句header("Content-Type:application/msword");<?php
header("Content-type: text/html; charset=utf8"); //页面编码
header("Content-Type:application/msword"); //表示这个页面将要导出为word
header("Content-Disposition:attachment;filename=".mb_convert_encoding("UUUU","gbk","utf8").".doc"); //该页面导出为word的文档名
header("Pragma:no-cache");
header("Expires:0");
?>
客户名称 | 电话号码 | 客户地址 | 添加日期 | 客户备注备注 |
/*you can use php+SQL to fetch data.*/
?>
HHHH<?php /*echo data*/?>IIIIII<?php /*echo data*/?>UUUU<?php /*echo data*/?>PPPPP<?php /*echo data*/?>/*using in while*/
?>