前言:程序员就是如果不学习,而且没有接触某些业务是永远都接触不到某些功能的,就像php中操作word,我之前也是没有接触过这个功能,下面我们来总结其中的一些细节。
下载文件
- composer require phpoffice/phpword
- https://phpword.readthedocs.io //官方文档
开始
- require_once './vendor/autoload.php';
- $phpWord = new \PhpOffice\PhpWord\PhpWord();
添加一段
$section->addText('txtsfdf', array('name' => '宋体', 'size' => 12),array('align' => 'right','lineHeight'=>1.5));
添加标题
$phpWord->addTitleStyle(3,array('bold' => true, 'size' => 22, 'name' => '宋体', 'Color' => '333'), array('align' => 'center'));
$section->addTitle('叉车定期检验报告',3);
换行
- $section->addText('<w:br />');
- $section->addTextBreak(14);
添加新的一页
- $section = $phpWord->addSection();
添加表格
fontStyle = array('name'=>'宋体','size'=>12,'align'=>'center');//文字样式
styleTable);
section->addTable('flstable');
横向合并
$table_title = [
['使用单位名称'],
['设备使用地点'],
['制造单位名称'],
['改造(重大单位名称)'],
['检验依据'],
['主要监测仪器'],
['监测结论'],
['备注'],
];
foreach ($table_title as $row){
$table->addRow(700);
foreach ($row as $val){
$table->addCell(2500,array('valign'=>'center','align'=>'center'))->addText($val,$fontStyle);
$table->addCell(8000,array('gridSpan' => 3))->addText('',$fontStyle);
}
}
竖向合并
$thir_tab = [
['下次定期检验日期: 年 月 日'],
['校验: 日期 '],
['审核: 日期 '],
['审批: 日期 '],
];
foreach ($thir_tab as $index=>$row){
foreach ($row as $val){
$table->addRow(700);
$table->addCell(4000,array('valign'=>'center','gridSpan' => 3))->addText($val,$fontStyle);
if($index ==0){
$table->addCell(4000,array('vMerge' => 'restart'))->addText('<w:br/>校验机构核准证号:<w:br/><w:br/> <w:br/><w:br/> 校验机构检验专用章: <w:br/><w:br/> 年 月 日');
}else{
$table->addCell(100,array('vMerge' => 'continue'));
}
}
}
一行文本添加不同样式
$use_arr = [
'使用单位信息:',
'注 册 代 码:',
'设 备 类 别:',
'设备型号规格:',
'检 验 类 别:',
'检 验 日 期:',
];
foreach ($use_arr as $ua){
$runtxt = $section->addTextRun(array('align' => 'center','lineHeight'=>1.5));
$runtxt->addText($ua, array('size' => 13,));
$runtxt->addText(' xxxxx ',array( 'size' => 13,'underline'=>'single'));
}
结束语:到这里大概就可以实现一个php导出word的常用功能,至于更多高深功能可以参考官方文档
网友评论