Perl操作Excel问题

环境准备,安装必要模块

下载安装

搜索.png
  • 2、进入网页点击下载按钮
    这同时也是官方文档,英语水平有限用了google翻译。在linux下用wget下载即可


    下载.png
  • 3、解压缩
    解压很简单,使用tar -xzf 压缩文件名 -C 解压路径

  • 4、安装
    最主要的步骤应该就是安装了,进入解压文件夹下执行命令

perl Makefile.PL   #默认安装到perl的根目录,自定义路径使用命令: perl Makefile.PL PREFIX=路径 
make install       #开始安装

最后调用路径就是:路径/share/perl5

解决依赖

解决方法很简单,调用下Excel::Writer::XLSX,发现有未找到的模块就再到metacpan网站上搜索安装,重复直到解决,还好貌似重复一遍就可以了
这样创建和写Excel的环境就解决了。

参考官方文档用代码写Excel文件

基本操作

my $workbook = Excel::Writer::XLSX->new( '文件路径' );                   #创建excel文件
$worksheet = $workbook->add_worksheet('sheet名,可空');                   #创建sheet
$worksheet->write( 行, 列, 内容);                                        #在某行某列写入xxxx

以上的这几条命令就可以完成最基本的写操作了,感觉真的是超级简单。

高级点的

  • 1、设置格式
$format = $workbook->add_format();  
#粗体
$format->set_bold();
#红色
$format->set_color( 'red' ); 
#居中
$format->set_align( 'center' );
#设置单元格格式
$worksheet->write( $row, $col, 'Hi Excel!', $format );
  • 2、添加图表
#type     (必要) 
#subtype  (可选) 
#name     (可选) 
#embedded (可选) 
my $chart = $workbook->add_chart( type => 'column' );
#对$chart设置各种数据,属性之后插入图表
$worksheet->insert_chart( 'E2', $chart );

参考官方文档读Excel文件

环境配置省略,在metacpan搜索Spreadsheet::ParseExcel即可。

官方最简单例子

#!/usr/bin/perl
use strict;
use warnings;
use Spreadsheet::ParseExcel;

#加载解析器
my $parser   = Spreadsheet::ParseExcel->new();
#读入文件,填入路径
my $workbook = $parser->parse('test.xls'); 
#防止出错
if ( !defined $workbook ) {
    die $parser->error(), ".\n";
}
#遍历sheet
for my $worksheet ( $workbook->worksheets() ) {
    #获取起始行
    my ( $row_min, $row_max ) = $worksheet->row_range();
   #获取起始列 
   my ( $col_min, $col_max ) = $worksheet->col_range();
   #遍历
    for my $row ( $row_min .. $row_max ) {
        for my $col ( $col_min .. $col_max ) {
 
            my $cell = $worksheet->get_cell( $row, $col );
            next unless $cell;
 
            print "Row, Col    = ($row, $col)\n";
            print "Value       = ", $cell->value(),       "\n";
            print "Unformatted = ", $cell->unformatted(), "\n";
            print "\n";
        }
    }
}

简单说明下,这段代码就是遍历了整个Excel表,然后将所有的结果进行了输出。一般这个代码就能满足要求了,将excel读入在做逻辑处理。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本例为设置密码窗口 (1) If Application.InputBox(“请输入密码:”) = 1234 Th...
    浮浮尘尘阅读 14,684评论 1 20
  • 用openpyxl操作excel表格 openpyxl 是一个用来操作excel 2010 的xlsx/xlsm的...
    stone46阅读 12,141评论 0 17
  • 转自链接 目录 1.认识NPOI 2.使用NPOI生成xls文件 2.1创建基本内容 2.1.1创建Workboo...
    腿毛裤阅读 13,702评论 1 3
  • 真正的稳定,是自己不断成长,不断寻找新的空间。与其要稳定,不如开始拥抱这个变化的时代,让自己准备好。python实...
    大婶N72阅读 9,429评论 0 2
  • 春妹初知艺,明前乱采芽。 黄鹂娇似锦,油伞美如葩。 缘去吟花落,因来赏晚霞。 古城溪水绕,田野伴牛娃。 (平水韵)
    雨意生香阅读 3,975评论 10 11