Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1467822
  • 博文数量: 139
  • 博客积分: 10005
  • 博客等级: 中将
  • 技术积分: 4740
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-01 14:39
文章分类

全部博文(139)

文章存档

2010年(63)

2009年(27)

2008年(49)

我的朋友

分类:

2009-07-23 13:58:33

perl中提供了win32::ole模块来操作excel表格,具体的操作函数和方法可以查阅excel的帮助文档,打开excel文件,从菜单栏"工具"->"宏”->”visual basic 脚本编译器, 选择对象浏览器中excel,就可以查看excel提供的函数和方法。

以上方法对任何脚本操作excel都适用。同样还可以查看word的函数。

例子:perl+win32::ole+excel

use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const ''Microsoft Excel'';

$Win32::OLE::Warn = 3;           # die on errors...

# get already active Excel application or open new
my $Excel = Win32::OLE->GetActiveObject(''Excel.Application'')
      || Win32::OLE->new(''Excel.Application'', ''Quit'');

# open Excel file
my $Book = $Excel->Workbooks->Open("c:/test.xls");

#write the excel content to txt file;
open(FH, ">e:\test.txt");

# select worksheet number 1 (you can also select a worksheet by name)
my $Sheet = $Book->Worksheets(1);
my$row_counts= $Sheet->{UsedRange}->{Rows}->{Count};      #得到行数
my$column_counts = $Sheet->{UsedRange}->{Columns}->{Count};    #得到列数

#set rows 2 ''s font is bold.
$Sheet->Rows(2)->{Font}->{Bold}=true;


my $row;
my $col;
for( $row=1;$row<$row_counts+1;$row++)
{
for( $col=1;$col<$column_counts+1;$col++)
{
    # skip empty cells
    #next unless defined $Sheet->Cells($row,$col)->{''Value''};

# print out the contents of a cell
#    printf " %s ",
#     $Sheet->Cells($row,$col)->{''Value''},
print FH $Sheet->Cells($row,$col)->{''Value''};
print FH "\n";

}
#print "\n";
}
print $Sheet->Cells(2,1)->{''Value''};

# clean up after ourselves

#$Book->Save;


$Book->Close;
close FH;

阅读(1204) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~