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

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 function getGridSpan() 
    { 
       return $this->_gridSpan; 
    }
    public function setVMerge($pValue = null) 
    { 
       $this->_vMerge = $pValue; 
    } 
    public function getVMerge() 
    { 
       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 colspan的使用:

            $table->addRow();
            $styleCell=array('gridSpan' => 2);
            $table->addCell(200, $styleCell)->addText('PHP二次开发');
            $table->addCell(100)->addText('http://www.111cn.net');
            $table->addRow();
            $table->addCell(100)->addText('PHP');
            $table->addCell(100)->addText('python');
            $table->addCell(100)->addText('java');
            $section->addTextBreak(10);

生成word效果图如下:

psps6s.png" />

时间: 2024-09-17 04:04:23

PHPWord生成word实现table合并(colspan和rowspan)的相关文章

table合并单元格colspan和rowspan

起因 解决方案 colspan rowspan colspan rowspan 综合实例 起因     最近要实现一个成绩分析的功能,最终是要呈现到Word中的,一开始想到的使用报表显示,但是得有单独的数据库表来存储这些数据,如果说项目是刚开始做的话,倒也好说,不过现在项目已经进入了后期,在新建数据库表就有点不现实了,因此就jsp界面手画table了.但是在画table的过程中遇到一个问题,有些单元格是合并的,那么怎么来合并单元格呢? 解决方案 colspan & rowspan     col

通过复制Table生成word和excel的javascript代码

 通过复制Table生成word和excel,个人感觉这个功能还是比较实用的,下面有个不错的示例,希望对大家有所帮助 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/19

解决PHPWord导出生成Word中文乱码问题

最近一个项目开发要用到PHP技术导出Word文档,比较了几种方案,首先是使用Microsoft Office自带的ActiveX/COM组件,比如Word.Application,这种方式的优点是格式兼容度高,可以生成纯doc的Word2003格式文档,缺点一是比较占资源(调用会启动一个WINWORD.EXE进程),不适合Web多用户访问使用:二是PHP这种Web开发技术大多数是跑在Linux服务器上,当然也就无法使用Windows下的技术了,平台可移植和兼容性不好.第二种生成Word的方案是生

根据标准word模板生成word文档类库(开源)

前言                                                                                                                              最近因项目需要要自定义标准word模板,并以编码方式操作word模板.填充数据和生成word文档,于是自己写了条小"内裤"来实现这个功能.该"内 裤"只针对ooxml格式的word文档,当然大家可以用Aspose.

C#编程实现动态生成Word文档

如何用C#编程实现动态生成Word文档并填充数据的效果呢?要使用C#操作word,首先要添加引用     1.添加引用->COM->Microsoft Word 11.0 Object Library     2.在.cs文件中添加     using  Word;     下面的例子中包括C#对Word文档的创建.插入表格.设置样式等操作:     (例子中代码有些涉及数据信息部分被省略,重要是介绍一些C#操作word文档的方法)     public   string  CreateWor

word文档-求教NOPI生成Word文档及相关操作方法

问题描述 求教NOPI生成Word文档及相关操作方法 各位大神,如果使用NPOI创建word文档? 如 创建一个table怎样合并单元格 如何插入页头.页尾.页码 如何插入分页符 如何插入图片 等等 哪位大神有相关Demo能否参阅一下... 解决方案 官网上有http://tonyqus.sinaapp.com/

PHP生成word文档的三种实现方式_php实例

最近工作遇到关于生成word的问题 现在总结一下生成word的三种方法. btw:好像只要是标题带PHP的貌似点击量都不是很高(哥哥我标题还是带上PHP了),不知道为什么,估计博客园上net技术大牛比较多吧,如果把java,.net,php比作程序员的女友,那么java是Oracle门下的大家闺秀,.net微软旗下的名门望族,PHP则是草根门下的山村野姑,这让我等PHP草民闷骚男情何以堪情何以堪..牢骚发完了,正式写吧 PHP生成word原理 利用windows下面的 com组件 利用PHP将内

java html内容生成word文件实现代码

先利用jsoup将得到的html代码"标准化"(Jsoup.parse(String html))方法,然后利用FileWiter将此html内容写到本地的template.doc文件中,此时如果文章中包含图片的话,template.doc就会依赖你的本地图片文件路径,如果你将图片更改一个名称或者将路径更改,再打开这个template.doc,图片就会显示不出来(出现一个叉叉).为了解决此问题,利用jsoup组件循环遍历html文档的内容,将img元素替换成${image_自增值}的标

PHP生成word文档的三种实现方式

最近工作遇到关于生成word的问题 现在总结一下生成word的三种方法. btw:好像只要是标题带PHP的貌似点击量都不是很高(哥哥我标题还是带上PHP了),不知道为什么,估计博客园上net技术大牛比较多吧,如果把java,.net,php比作程序员的女友,那么java是Oracle门下的大家闺秀,.net微软旗下的名门望族,PHP则是草根门下的山村野姑,这让我等PHP草民闷骚男情何以堪情何以堪..牢骚发完了,正式写吧 PHP生成word原理 利用windows下面的 com组件 利用PHP将内