十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
如果没有图片要导出的话,可以使用以下简单方式。
成都创新互联公司主要从事成都做网站、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务湟源,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
?php
header("Content-type:application/vnd.ms-word");
header("Content-Disposition:filename=zgfun.doc");
echo
"要导出的内容一。\r\n";
echo
"要导出的第二行。";
?
=============
如果要导出带图片的,则需要使用把网页保存为mht的格式下载。word可以直接打开。
本篇文章主要是对php导出word文档与excel电子表格的简单示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
生成word的代码:
代码如下:
header("Content-type:
application/octet-stream");
header("Accept-Ranges:
bytes");
header('Content-type:
application/doc');
header('Content-Disposition:
attachment;
filename="测试.doc"');
生成excel的代码
:
代码如下:
Header("Content-type:
application/octet-stream");
Header("Accept-Ranges:
bytes");
Header("Content-type:application/vnd.ms-excel");
Header("Content-Disposition:attachment;filename="测试.xls"');
但是导的过程中也会遇到很多问题,比如说导出excel,某列导出的是身份证号的话,打开excel文件以后会发现,身份证号自动采用科学计数法,无论如何修改该列属性,都无法实现自己的要求。网上有人说,先把该列属性改为文本以后,再输入就没有问题,实际操作excel确实如此,但是,php程序导出就无法做到了。也有人说,在身份证号前加单引号,试过也不行,最后在导出的身份证号数据前加空格问题解决,空格是html代码的空格.问题解决。
首先使用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
一般,有2种方法可以导出doc文档:
第一种是使用com,并且作为php的一个扩展库安装到服务器上,然后创建一个com,调用它的方法。安装过office的服务器可以调用一个叫word.application的com,可以生成word文档,不过这种方式我不推荐,因为执行效率比较低(我测试了一下,在执行代码的时候,服务器会真的去打开一个word客户端)。理想的com应该是没有界面的,在后台进行数据转换,这样效果会比较好,但是这些扩展一般需要收费。
第2种方法,就是用PHP将我们的doc文档内容直接写入一个后缀为doc的文件中即可。使用这种方法不需要依赖第三方扩展,而且执行效率较高。
$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('路由页面');
导出word文档类如下:
?php
class word
{
function start()
{
ob_start();
}
function save($path)
{
$data = ob_get_contents();
ob_end_clean();
$this-wirtetoword($path,$data);
}
function wirtetoword ($fn,$data)
{
$fp=fopen($fn,"wb");
fwrite($fp,$data);
fclose($fp);
}
}
?