Chinaunix首页 | 论坛 | 博客
  • 博客访问: 830010
  • 博文数量: 167
  • 博客积分: 7173
  • 博客等级: 少将
  • 技术积分: 1671
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-04 23:07
文章分类

全部博文(167)

文章存档

2018年(1)

2017年(11)

2012年(2)

2011年(27)

2010年(88)

2009年(38)

分类:

2010-10-15 14:47:07

      发觉最近有点忙,很久没法文章了,为了不给遗忘,发个最近在用的perl的一个模块;

   以前做excel的处理,是用vc++ 或  java  因为方便不用安装什么东西,但最近想提提组内
新人的学习兴趣,就弄弄perl excel处理模块。


   网上的例子,都只是给出一个例子,但发现这个例子就是原来官网模块下面的例子,可能有些
朋友还要花费时间去找相关模块,下载安装使用,到最后还不能达到想要的效果。以下的例子是能
读取excel内容,并进行中文处理。


资源:
   
文件:Spreadsheet-ParseExcel-0.58.tar.gz
大小:165KB
下载:下载

           
文件:Spreadsheet-Read-0.41.tar.gz
大小:143KB
下载:下载

    
文件:Spreadsheet-WriteExcel-2.37.tar.gz
大小:553KB
下载:下载

文件:OLE-Storage_Lite-0.19.tar.gz
大小:21KB
下载:下载
   
(PS:OLE模块肯定要最先安装)

安装步骤:
  tar -zxvf xx.tar.gz && /usr/bin/perl Makefile.py && make && make test
  make install


#!/usr/bin/perl -w

use strict;
use Spreadsheet::ParseExcel;
use Encode;

    my $parser=Spreadsheet::ParseExcel->new();
    my $workbook = $parser->Parse('test.xls');

   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)\t ", encode("gb2312",$cell->value()),       "\t";
                #print "Unformatted = ", encode("gb2312",$cell->unformatted()), "\t";
                #print "\n";
            }
                print "\n";
        }
    }


学习方法:
在官网:上每个模块都附带着demo  学习起来比较容易  但毕竟是外国  所以代码里面都是没做
中文处理

[root@apptest-10-90 handleExcel]# /usr/bin/perl  handleExcel.pl
 (0, 0)  欧彬    (0, 1)  Sky     (0, 2)  201009

从这里我们可以知道,它是按点的方式进行数据读取。


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