免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 9772 | 回复: 17
打印 上一主题 下一主题

perl如何实现对word 表格的两个单元格的合并呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-24 13:09 |只看该作者 |倒序浏览
例如有两个相邻的单元格,用perl如何实现其合并?请教专家

论坛徽章:
0
2 [报告]
发表于 2011-08-24 13:49 |只看该作者
回复 1# qbxy_dream
使用 Win32::OLE模块

$objTa->Cell( $CellRows, $CellColumns )->Merge( { MergeTo => $objTa->Cell( $MergeRows, $MergeColumns ) } );

论坛徽章:
0
3 [报告]
发表于 2011-08-24 16:01 |只看该作者
回复 2# aef25u


    你这个是excel的吧。如果是word呢?

论坛徽章:
0
4 [报告]
发表于 2011-08-24 18:37 |只看该作者
回复 3# qbxy_dream


这就是word的。Excel的更简单。

论坛徽章:
0
5 [报告]
发表于 2011-08-24 22:11 |只看该作者
回复 4# aef25u


    大侠,你就举个例子嘛。贴段代码出来学习下啊。小弟是初学者,不懂。。。。。。

论坛徽章:
0
6 [报告]
发表于 2011-08-24 22:40 |只看该作者
本帖最后由 aef25u 于 2011-08-24 23:25 编辑

回复 1# qbxy_dream

已给了你提示了...
算了,我好人做到底,你还是应该多使用Google。
  1. use Win32::OLE;
  2. my $word = Win32::OLE->new("Word.Application");
  3. $word->{Visible} = 1;
  4. my $document = $word->Documents->Add;
  5. my $Range    = $document->ActiveWindow->Selection->{Range};
  6. my $objTa    = $document->Tables->Add( $Range, 3, 2 );
  7. $objTa->Cell( 1, 1 )->Merge( { MergeTo => $objTa->Cell( 3, 1 ) } );
  8. $document->SaveAs('d:/test.doc');
  9. $document->close;
  10. $word->quit;
复制代码
对应VBA代码
  1. Documents.Add
  2. Set myRange = ActiveWindow.Selection.Range
  3. Set objTa = ActiveDocument.Tables.Add(Range:=myRange, NumRows:=3, NumColumns:=2)
  4. objTa.Cell(1, 1).Merge MergeTo:=objTa.Cell(3, 1)
复制代码

论坛徽章:
0
7 [报告]
发表于 2011-08-24 23:01 |只看该作者
回复 6# aef25u


    哇。!!! 原来如此!!太感谢了。我光看CPAN上的资料,没看到有这样的写法。
另外还想问问,在生成的word里面写文字,可以设置字体的大小以及对齐方式么?

论坛徽章:
0
8 [报告]
发表于 2011-08-24 23:11 |只看该作者
回复 7# qbxy_dream

你这些是VBA的问题,你上网搜索一下VBA及如何录制宏,再学一下将VBA转为perl的规则,这些问题都将不是问题。

论坛徽章:
0
9 [报告]
发表于 2011-08-24 23:40 |只看该作者
回复 8# aef25u


    你说的确实正确。设置字体大小我已经知道怎么做了。我学习perl的时间短,学习方法上还有很多需要改善的地方。谢谢了:)
很多东西都是工作上需要才会去想 要怎样来实现,时间安排上很紧张。
   另外还是想请教一下你,比如说要实现下图这样的表格,应该怎样做呢?我看了一些模块,基本上都是几行几列很整齐的对齐的,像下图这样的不知道该怎样想,做出来了应该怎样往里面写数据,也没找到合适的例子可以参考。

--------------------------
|                  |             |
---------------------------
|      |                   |      |
-----------------------------

论坛徽章:
0
10 [报告]
发表于 2011-08-25 13:54 |只看该作者
回复 9# qbxy_dream


    VBA 我暂时还不会用,还是先请教你怎么在word里面已经建好的table中的单元格里面写指值吧。比如要在cell(1,1)里面写值应该怎么写?我查了下都没看到相关的方法。另外还想问问,你有相关的VBA转PERL的相关资料么?能够共享,谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP