使用COM / PHP格式化/设置在Word中创建的表格

时间:2014-02-20 13:20:06

标签: php com ms-word

我已经能够创建并添加一个表到我的单词模板,我一直在搜索MSDN,以寻找通过COM控制这个新表的属性的方法,我只是找不到任何东西,MSDN / Google / stackoverflow,如果有人有控制以这种方式创建的表的经验,将非常感谢一些帮助!

示例问题,下面在我的word文档中在特定点创建一个简单的两列1行表,但它基本上没有设置属性,我需要添加边框等,除非你突出显示单元格,否则它基本上是不可见的在单词中。

$table1 = $word1->ActiveDocument->Tables->Add($objBookmark1->Range, 1, 2)

我知道我需要进一步扩展这个声明,或许可以使用样式或其他东西,但我找不到一个有效的命令,继续得到类似的东西:

  

未捕获的异常'com_exception',消息'无法查找   `LineStyle':未知名称。

1 个答案:

答案 0 :(得分:1)

好的,我找到了一个解决方案,我希望这有助于将来的某个人:

        final class WdLineStyle {

            const wdLineStyleSingle = 1;

            // ... 
        }

//Bookmark found in word document - you want to find this and replace it with the table
        $bookmarkname2 = "TABLE_Budget";
// Wrapped in an 'if' find the correct bookmark and then create a Range and perform the table insertion. STYLING!!!!!
        if ($word1->ActiveDocument->Bookmarks->Exists($bookmarkname2)) {
            //then create a Table and perform the substitution of bookmark with table 
            $ActiveD = $word1->ActiveDocument;
            $objBookmark1 = $ActiveD->Bookmarks($bookmarkname2);
            $Table1 = $ActiveD->Tables->Add($objBookmark1->Range, 3, 4);
            $Table1->Borders->InsideLineStyle = WdLineStyle::wdLineStyleSingle;
            $Table1->Borders->OutsideLineStyle = WdLineStyle::wdLineStyleSingle;
            echo 'Succeafully inserted ' . $bookmarkname2 . "<br />";
        } else {

            echo 'Problem found on ' . $bookmarkname2 . 'insert.';
        }