这篇文章给大家分享的是有关ThinkPHP6.0内容导 Word的使用方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

目前成都创新互联公司已为上千家的企业提供了网站建设、域名、虚拟主机、网站托管、服务器托管、企业网站设计、江口网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
(一)环境配置
基础环境
系统环境:Windows10 x64
PHP集成环境:phpstudy
PHP依赖管理工具:Composer
手册:Thinkphp
(二)安装ThinkPHP6.0和Phpword扩展
(1)安装ThinkPHP6.0
composer create-project topthink/think phpword
(2)安装phpword插件
composer require phpoffice/phpword
(三) 内容导出word
(1)内容导出生成word文档
* @describe:
*/
public static function exportToword($text,$title=null,$save=false){
$phpWord=new PhpWord(); //实例化
//调整页面样式
$sectionStyle = array('orientation' => null,
'marginLeft' => 300,
'marginRight' => 300,
'marginTop' => 300,
'marginBottom' => 400);
$section = $phpWord->addSection($sectionStyle);
//添加页眉
/* $header=$section->addHeader();
$k=$header->addTextRun();
//页眉添加一张图片
$k->addImage(app()->getRootPath().'public'.DS."static/images/jrk.jpg",array(
'width' => '100%',
'height' => 60,
'marginTop' => -1,
'marginLeft' => 1,
'wrappingStyle' => 'behind',
));*/
//添加页脚
$footer = $section->addFooter();
$f=$footer->addTextRun();
$f->addImage(app()->getRootPath().'public'.DS."static/images/jrk.jpg",array(
'width' => 105,
'height' => 65,
'marginTop' => -1,
'marginLeft' => 1,
'wrappingStyle' => 'behind',
));
$footer->addPreserveText('Page {PAGE} of {NUMPAGES}.',array('align'=>'center'));
//添加标题
if (!empty($title)){
$section->addText(
$title,
array('name' => '黑体', 'size' => 15),
array('align'=>'center')
);
}
//添加换行符
$section->addTextBreak(2);
//添加文本
if (is_array($text)){
foreach ($text as $v){
$section->addText(
$v,
array('name' => 'Arial', 'size' => 13),
array('lineHeight'=>1.5,'indent'=>1)
);
}
}else{
$section->addText(
$text,
array('name' => 'Arial', 'size' => 13),
array('lineHeight'=>1.5,'indent'=>1)
);
}
$fname=Tool::uniqidDateCode();
if ($save){
/*保存文档到本地*/
$objwrite =IOFactory::createWriter($phpWord);
$t=date("Ymd",time());
//保存的路径和中文名称适应
$dir = iconv("UTF-8", "GBK", app()->getRootPath().'public'.DS.'words'.DS.$t);
if (!file_exists($dir)) {
@mkdir($dir, 0777, true);
}
$pa = $t."/".$fname.".docx";
$objwrite->save(app()->getRootPath().'public'.DS.'phpoffices/words'.DS.$pa);
return ['code'=>1,'url'=>'/phpoffices/words/'.$pa,'domain'=>request()->domain(true)];
}else{
//不保存到服务器,直接输出浏览器下载
$name=$fname.".docx"; //文件名称
$phpWord->save($name,"Word2007",true);
}
exit;
}
}(2)内容生成 html 文件
/** * @param $text * @param bool $save * @return array * @throws \PhpOffice\PhpWord\Exception\Exception * @author: LuckyHhy* @describe: */ public static function makeHtml($text,$save=false){ $phpWord=new PhpWord(); //实例化 $section = $phpWord->addSection(); $fontStyleName = 'oneUserDefinedStyle'; $phpWord->addFontStyle( $fontStyleName, array('name' => 'Tahoma', 'size' => 13, 'color' => '1B2232', 'bold' => true) ); if (is_array($text)){ foreach ($text as $v){ $section->addText( $v, $fontStyleName ); } }else{ $section->addText( $text, $fontStyleName ); } $fname=Tool::uniqidDateCode(); if ($save){ $objwrite = IOFactory::createWriter($phpWord, 'HTML'); $t=date("Ymd",time()); //保存的路径和中文名称适应 $dir = iconv("UTF-8", "GBK", app()->getRootPath().'public'.DS.'phpoffices/htmls'.DS.$t); if (!file_exists($dir)) { @mkdir($dir, 0777, true); } $pa = $t."/".$fname.".html"; $objwrite->save(app()->getRootPath().'public'.DS.'phpoffices/htmls'.DS.$pa); return ['code'=>1,'url'=>'/phpoffices/htmls/'.$pa,'domain'=>request()->domain(true)]; }else{ $name=$fname.".html"; //文件名称 $phpWord->save($name,"HTML",true); } exit; }
感谢各位的阅读!关于ThinkPHP6.0内容导 Word的使用方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!