如何使用Perl修改Word表的列宽?

时间:2015-10-05 12:50:05

标签: perl ms-word win32ole

将Perl与Win32 :: OLE模块一起使用我正在尝试将表插入到Microsoft Word文档中,然后修改列宽。我可以毫无困难地插入表格,但修改列宽更加困难。在创建宏并尝试将VBA转换为Perl之后,我就是这样:

my $word = Win32::OLE->new('Word.Application', sub {$_[0]->Quit;});
my $doc = $word->Documents->Open('myfile.doc');

### Code to find and select a tag to replace with a table goes here ###

my $table = $doc->Tables->Add($word->Selection->Range, 4, 4);
$table->Columns(1)->{PreferredWidthType} = wdPreferredWidthPoints;
$table->Columns(1)->{PreferredWidth} = 200;

不幸的是,这给最后两行“不能使用未定义的值作为HASH引用”错误。我已经尝试了其他几种变体,但没有一种有效,谷歌也没有帮助。我真的很感激如何做到这一点。

感谢。

1 个答案:

答案 0 :(得分:0)

经过一些试验和错误,我发现这完成了这项工作:

function arr(){
    $arr = array();

    $arr['arr1']['key1'] = 'val1';
    $arr['arr2']['key1'] = 'val1';
    $arr['arr3']['key1'] = 'val1';

    return $arr1;
}

只调整行1上的列就足够了,这会影响所有其他行。当你知道怎么做时很容易!