PHPWord生成word实现table合并(colspan和rowspan)

摘要:
is_null){$objWriter-˃startElement;$objWriter-˃writeAttribute;$objWriter-˃endElement();}OK,恭喜你,搞定了,然后看看怎么使用吧!

PHPWord(http://phpword.codeplex.com/)是一个很好处理和生成WORD文档的工具,但是生成复杂的word,如colspan和rowspan的实现,还是需要你做些修改。

第一步:在phpword/Style/Cell.php文件类中添加如下属性:

private $_gridSpan;//for the colspan
private $_vMerge;//for the rowspan

第二步:在phpword/Style/Cell.php文件类中添加如下方法:

public function setGridSpan($pValue = null) 
{ 
   $this->_gridSpan = $pValue; 
} 
public functiongetGridSpan() 
{ 
   return $this->_gridSpan; 
}
public function setVMerge($pValue = null) 
{ 
   $this->_vMerge = $pValue; 
} 
public functiongetVMerge() 
{ 
   return $this->_vMerge; 
}


第三步:在phpword/Style/Cell.php文件类构造函数__construct()中添加如下:

$this->_gridSpan=null;
$this->_vMerge=null;

第四步:在phpword/writer/word2007/base.php类的_writeCellStyle方法中添加:

$gridSpan = $style->getGridSpan();
if(!is_null($gridSpan)) 
{ 
    $objWriter->startElement('w:gridSpan'); 
    $objWriter->writeAttribute('w:val', $gridSpan); 
    $objWriter->endElement(); 
}
/** edited by www.phpddt.com */
$vMerge = $style->getVMerge(); 
if(!is_null($vMerge)) 
{ 
    $objWriter->startElement('w:vMerge'); 
    $objWriter->writeAttribute('w:val', $vMerge); 
    $objWriter->endElement(); 
}

OK,恭喜你,搞定了,然后看看怎么使用吧!

PHPWord rowspan的使用:

$table = $section->addTable();
$table->addRow();
$table->addCell(100,array('vMerge' => 'restart'))->addText('1');
$table->addCell(100)->addText('2');
$table->addRow();
$table->addCell(100,array('vMerge' => 'fusion'));
$table->addCell(100)->addText('3');

生成的word效果如下截图:

PHPWord生成word实现table合并(colspan和rowspan)第1张

PHPWord colspan的使用:

        $table->addRow();
        $styleCell=array('gridSpan' => 2);
        $table->addCell(200, $styleCell)->addText('PHP点点通');
        $table->addCell(100)->addText('http://www.phpddt.com');
        $table->addRow();
        $table->addCell(100)->addText('PHP');
        $table->addCell(100)->addText('python');
        $table->addCell(100)->addText('java');
        $section->addTextBreak(10);

生成word效果图如下:

PHPWord生成word实现table合并(colspan和rowspan)第2张

免责声明:文章转载自《PHPWord生成word实现table合并(colspan和rowspan)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL Server bit数据类型实全软件产品自动升级管理解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Unity多语言本地化改进版

简介 之前捣鼓过一个通过csv配置游戏多语言支持的小工具,但是发现使用过程中,通过notepad++去进行转码很不方便,并且直接将配置的csv不加密的放在游戏中心里感觉不是很踏实 于是乎~~ 新的方案 1.在PC/MAC平台上解析多语言配置,也就是editor运行环境中解析csv或者excel 2.通过在Editor运行过程中生成多个语言对象,然后序列化并...

Vue根据浏览器窗体变化动态设置Element Table组件的最大高度

Vue根据浏览器窗体变化动态设置Element Table组件的最大高度 这个场景应该经常遇到,比如说在一个页面有一个table,想让他数据过多的时候自动出现滚动条而不至于冲到屏幕外被隐藏,如果表格下面还有换页的话,换页直接冲没了,所以需要计算这个table表格的最大高度。 使用的是饿了吗Element组件库的table组件,有一个属性是 max-heig...

使用engine关键字指定该表使用哪个engine

建表及插入数据语句:mysql> create table salary(userid int,salary decimal(9,2));Query OK, 0 rows affected (0.11 sec)mysql> insert into salary values(1,1000),(2,2000),(3,3000),(4,4000),...

【Hive学习之二】Hive SQL

环境虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4FTP:Xftp4jdk8hadoop-3.1.1apache-hive-3.1.1 参考:官网hive操作手册 一、DDL 1、数据类型 data_type : primitive_type |array_type |map_type...

Oracle Parallel 多线程

对于一个大的任务,一般的做法是利用一个进程,串行的执行,如果系统资源足够,可以采用parallel技术,把一个大的任务分成若干个小的任务,同时启用n个进程/线程,并行的处理这些小的任务,这些并发的进程称为并行执行服务器(parallel executeionserver),这些并发进程由一个称为并发协调进程的进程来管理。 启用Parallel前的忠告:只有...

网上购物车数据库设计

一、概述 网上购物店的数据模型,它主要模式有产品:product ,帐户:Account,定单:Order。和产品相关的表有category ,product,item, inventory, supplier;和用户相关表有的account ,signon ,profile;和定单相关的表有orders,orderstatus,lineitem FK:...