Excel文件导出为Word文档

来源:互联网 发布:微信小程序读写数据库 编辑:程序博客网 时间:2024/05/24 07:12

use Win32::OLE;
use Win32::OLE::Const('Microsoft Excel');
use Win32::OLE::Const('Microsoft Word');
######################################
#将EXCEL数据写入到WORD文件中
#
#
#
######################################
$word= Win32::OLE->new('Word.Application','Quit');#生成WORD对象
$word->{Visible} = 1;#可见
$doc = $word->Documents->Add;#生成一个WORD文档
$range = $doc->Range;#生成Range对象

 

$book = Win32::OLE->GetObject('d:/cq.xls','Quit');#获取工作薄对象
$sheet = $book->ActiveSheet;#得到活动工作表对象
$rows = $sheet->Rows->Count;#工作表的总行数
$columns = $sheet->Columns->Count;#工作表的总列数
$lr = $sheet->Cells($rows,1)->End(-4162)->Row;#自工作表A列最后一个单元格向上查找,得到行号
$lc = $sheet->Cells(1,$columns)->End(-4159)->Column;#自工作表第一行最后一个单元格向左查找,得到列号
$table  = $doc->Tables->Add($range,$lr,$lc);#生成表格,行列数来自工作表有效数据区域
$trows = $table->rows->count;#文档表格的行数
#遍历工作表数据区域,写入文档表格
foreach $m(1..$lr){
 foreach $n(1..$lc){
 $data = $sheet->Cells($m,$n)->Value;#工作表的每一个单元格数据
 $table->cell($m,$n)->range->{text} = $data;#此处{text}的大括号{}不能省略,奇怪了
 }
}

$doc->SaveAs('d:/khy.doc');#保存文档
$doc->close;#关闭文档
undef $book;
undef $doc;
undef $word;

 

0 0
原创粉丝点击