TP5利用phpforword生成word表格文档
-12-18
573
1.首先用composer安装下载 phpoffice/phpforwordcomposerrequirephpoffice/phpword
2.在controller里引用usePhpOffice\PhpWord\IOFactory;
usePhpOffice\PhpWord\PhpWord;
3.生成简单表格代码如下$PHPWord=newPhpWord();
$section=$PHPWord->createSection();
$PHPWord->addTitleStyle(1,array('bold'=>true,'size'=>18,'name'=>'Arial','Color'=>'333'),array('align'=>'center'));
$section->addTitle("编程爱好者之家",1);
//定义样式数组
$styleTable=array(
'borderSize'=>6,
'borderColor'=>'000000',
'cellMargin'=>150
);
$styleFirstRow=array(
'borderBottomSize'=>18,
'borderBottomColor'=>'000000',
'bgColor'=>'66bbff'
);
$cellStyle=array('gridSpan'=>2);
//添加表格样式
$PHPWord->addTableStyle('myOwnTableStyle',$styleTable,$styleFirstRow);
//添加表格
$table=$section->addTable('myOwnTableStyle');
$table->addRow();
$table->addCell(3000)->addText('测试1');
$table->addCell(3000)->addText('测试2');
$table->addCell(3000)->addText('测试3');
$table->addRow();
$table->addCell(3000)->addText('测试4');
$table->addCell(6000,$cellStyle)->addText('测试5');//合并列单元格
$table->addRow();
$table->addCell(3000,array('vMerge'=>'restart'))->addText('合并');
$table->addCell(3000)->addText('测试6');
$table->addCell(3000)->addText('测试7');
$table->addRow();
$table->addCell(3000,array('vMerge'=>'continue'));
$table->addCell(3000)->addText('测试8');
$table->addCell(3000)->addText('测试9');
$table->addRow();
$table->addCell(3000)->addText('测试10');
$table->addCell(3000)->addText('测试11');
$table->addCell(3000)->addText('测试12');
$file='测试.docx';
//文档存在服务器上用此代码
$objWriter=IOFactory::createWriter($PHPWord,'Word');
$objWriter->save('存储地址/编程爱好者.docx');
//直接下载不存储在服务器上用此代码
header("Content-Description:FileTransfer");
header('Content-Disposition:attachment;filename="'.$file.'"');
header('Content-Type:application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header('Content-Transfer-Encoding:binary');
header('Cache-Control:must-revalidate,post-check=0,pre-check=0');
header('Expires:0');
$xmlWriter=IOFactory::createWriter($PHPWord,'Word');
$xmlWriter->save("php://output");
生成文档如下图所示
分享到: