重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先使用composer安装PHPWord
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的璧山网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
composer require phpoffice/phpword
创建一个公共方法
function exportWorld()
{
$phpWord = new PhpWord();//实例化对象
$section = $phpWord-addSection();//新增一个空白页
$section-addText('hello');//添加一个段落文字
$textrun = $section-addTextRun();//普通文字,一个段落,可以在后面追加文字
$textrun-addText('world');//在上面的文字后面添加文字
$textrun-addTextBreak(1);//文字换行,参数表示几行
$section-addTextBreak(1);//段落直接换行
$section-addPageBreak();//添加换行符
//字体样式
$fstyle = [
'name' ='宋体', //字体
'size' = 12, //大小
'color'= 'red', //颜色
'bold' = true' //加粗
];
//段落样式
$pstyle = [
'align' ='center', //对齐方式
'inden' = 2, //缩进
];
$section-addText('how are you!',$fstyle,$pstyle);//添加自定义文字样式和段落样式的
$objWriter = IOFactory::createWriter($phpWord, 'Word2007');
header('pragma:public');
header("Content-Disposition:attachmeng;filename=hello.doc");//设置导出保存的文件名
$objWriter-save('php://output');
}
以下举例一些常用的参数配置
设置文档属性
$pro = $PHPWord-getProperties();
$pro-setCreator('Jankin'); //创建者
$pro-setCompany('apple'); //公司
$pro-setTitle('computer science'); //标题
$pro-setDescription('this is computer science document.');//描述
$pro-setCategory('computer'); //分类
$pro-setLastModifiedBy('Jankin'); //最后修改者
$pro-setCreated( mktime(0, 0, 0, 8, 12, 2019) );//创建时间
$pro-setModified( mktime(0, 0, 0, 8, 12, 2010) );//修改时间
$pro-setSubject('computer science');//主题
$pro-setKeywords('science');//关键词
设置常用页面样式
$pStyle = [
'orientation' = null,//页面方向,默认null是竖向,landscape是横向
'marginTop' = 800,//上边距
'marginLeft' = 800,//左边距
'marginRight' = 800,//右边距
'marginBottom' = 800,//下边距
'borderTopSize' = 800,//上边框尺寸
'borderTopColor' = 'red',//上边框颜色
'borderLeftSize' = 800,//左边框尺寸
'borderLeftColor' = 'red',//左边框颜色
'borderRightSize' = 800,//右边框尺寸
'borderRightColor' = 'red',//右边框颜色
'borderBottomSize' = 800,//下边框尺寸
'borderBottomColor' = 'red',//下边框颜色
];
设置常用文本样式
$pStyle = [
'size' = 12,//文字大小
'name' = '宋体',//字体名称
'bold' = true,//加粗
'italic' = true,//斜体
'Color' = 'red',//颜色
];
原文链接 PHPWord导出Word
$this-assign(别名', $this-model-getall($id));
ob_start();
//设置为一个下载类型
header("Content-type:application/octet-steam");
//可以请求网页实体的一个或者多个子范围字段
header("Accept-Ranges:bytes");
//将查询结果导出到word
header("Content-type:application/vnd.ms-excel");
//把请求所得的内容存为一个文件的时候提供一个默认的文件名
header("Content-Disposition:filename=名称-" . date("YmdHis") . ".doc");
//清除缓冲区内容
ob_end_flush();
$this-display('路由页面');
一般,有2种方法可以导出doc文档:
第一种是使用com,并且作为php的一个扩展库安装到服务器上,然后创建一个com,调用它的方法。安装过office的服务器可以调用一个叫word.application的com,可以生成word文档,不过这种方式我不推荐,因为执行效率比较低(我测试了一下,在执行代码的时候,服务器会真的去打开一个word客户端)。理想的com应该是没有界面的,在后台进行数据转换,这样效果会比较好,但是这些扩展一般需要收费。
第2种方法,就是用PHP将我们的doc文档内容直接写入一个后缀为doc的文件中即可。使用这种方法不需要依赖第三方扩展,而且执行效率较高。
如果没有图片要导出的话,可以使用以下简单方式。
?php
header("Content-type:application/vnd.ms-word");
header("Content-Disposition:filename=zgfun.doc");
echo
"要导出的内容一。\r\n";
echo
"要导出的第二行。";
?
=============
如果要导出带图片的,则需要使用把网页保存为mht的格式下载。word可以直接打开。