zoukankan      html  css  js  c++  java
  • Perl通过WIN32 OLE来操作EXCEL

           最近要用Perl(通过Win32::OLE)来操作EXCEL,在网上没找到类似的内容,好不容易在一本书上找到点入门知识,再加上自己捣鼓了一通,总算有点眉目,在此做个备份,供大家和我一起参考 ^_^
     

    #!usr/bin/perl
    use strict;
    use warnings;
    use Win32::OLE;   #导入win32 OLE包

    my $dir = 'D://myperl//win32ole//';  #在此目录下新建两个EXCEL
    my $src_name = $dir."test1"."/.xls";
    my $dst_name = $dir."test2"."/.xls";
    my $nowstr;

    #新建一个EXCEL应用对象,然后我们就可以对excel进行操作。
    my $app_xls = Win32::OLE->new('Excel.Application', sub{$_[0]->Quit})
    or die"Can't install Excel01!";
     
    #打开一个EXCEL文件,'True' 表示是只读
    my $src_book = $app_xls->WorkBooks->Open($src_name, 0, 'True');
    my $src_sheet = $src_book->Worksheets(1); #选中一工作表
    $nowstr = $src_sheet->Cells(1,'A')->{Value};  #取得一单元格中数据

    print($nowstr);
    $src_sheet->Cells(1,'A')->{Value}="change";  #修改一单元格中数据

    my $dst_book = $app_xls->WorkBooks->Open($dst_name);
    my $dst_sheet = $dst_book->Worksheets(1);
    $app_xls->{DisplayAlerts} = 'False';    #关掉excel的提示,比如是否保存修改之类的
    #$dst_book->Worksheets(1)->Delete; #删除一工作表

    #从一个excel里复制一工作表到另一excel中
    $src_book->Worksheets(1)->Copy($dst_book->Worksheets('sheet3')); 
    $dst_book->Save;  #保存所做修改
    $app_xls->{DisplayAlerts} = 'True'; #恢复提示

    undef $src_book;
    undef $dst_book;
    undef $app_xls;  #关掉所打开的excel应用
     
    参考资料:
    1、《Perl5编程核心技术》——杜经农 (北京希望电子出版社)2000.11第一版
    2、Microsoft Excel 开发人员参考,通过OLE来对EXCEL进行操作的一些说明,关于OLE相关支持,可在微软的 MSDN上找到,我的blog技术杂谈目录下也有对OLE的简介。
     
     PS:转载请保留以下信息
    Author:smilelance    
    Time:2006.05.23
     
  • 相关阅读:
    CSS宽高背景介绍
    js控制iframe高度自动撑开
    点击除指定元素以外的任意地方隐藏js
    es6中对象转数组,转map
    JavaScript常用方法(工具类的封装)
    h5端提示下载app
    web端调百度地图页面
    前端分享功能
    手机注册发送验证码倒计时
    判断滚动条滑到底部触发事件
  • 原文地址:https://www.cnblogs.com/secbook/p/2655521.html
Copyright © 2011-2022 走看看