为了账号安全,请及时绑定邮箱和手机立即绑定

用PHP生成word文件

标签:
PHP Html/CSS

不用说,这个功能很常见,也很实用,一个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'<html xmlns:o="urn:schemas-microsoft-com:office:office"
                            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 "</html>";
                    $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");
?>
<html>
<meta http-equiv=Content-Type content="text/html; charset=utf8">
<style media="print" type="text/css">
<!--
body {
margin-left: 0cm;
margin-top: 0cm;
margin-right: 0cm;
margin-bottom: 0cm;
}
-->
</style>
<body>
<table width="100%" style='border-collapse:collapse;'>
<tr>
    <td width='24%' bgcolor='#CCCCCC' style='border:1px solid #000000;font-size:12px;'>客户名称</td>
    <td width='13%' bgcolor='#CCCCCC' style='border:1px solid #000000;font-size:12px;'>电话号码</td>
    <td width='32%' bgcolor="#CCCCCC" style='border:1px solid #000000;font-size:12px;'>客户地址</td>
    <td width='11%' bgcolor="#CCCCCC" style='border:1px solid #000000;font-size:12px;'>添加日期</td>
    <td width='20%' bgcolor="#CCCCCC" style='border:1px solid #000000;font-size:12px;'>客户备注备注</td>
</tr>
<?php
    /*you can use php+SQL to fetch data.*/
?>
<tr>
        <td style='border:1px solid #000000;font-size:12px;'>HHHH<?php /*echo data*/?></td>
        <td style='border:1px solid #000000;font-size:12px;'>IIIIII<?php /*echo data*/?></td>
        <td style='border:1px solid #000000;font-size:12px;'>UUUU<?php /*echo data*/?></td>
        <td style='border:1px solid #000000;font-size:12px;'>PPPPP<?php /*echo data*/?></td>
    <td style='border:1px solid #000000;font-size:12px;'>&nbsp;</td>
   </tr>
<?php
     /*using in while*/
?>
</table>
</body>
</html>


点击查看更多内容
4人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消