`
Tristan_S
  • 浏览: 366905 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

perl - 解析excel

    博客分类:
  • perl
阅读更多
用win32的方式 不推荐
use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
$Win32::OLE::Warn = 3;                                # die on errors...
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
    || Win32::OLE->new('Excel.Application', 'Quit');  

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

my $Sheet = $Book->Worksheets(1);
foreach my $row (1..4)
{
 foreach my $col (1..3)
 {
  # skip empty cells
  next unless defined $Sheet->Cells($row,$col)->{'Value'};
  printf "At ($row, $col) the value is %s \n",
   $Sheet->Cells($row,$col)->{'Value'},
   $Sheet->Cells($row,$col)->{'Formula'};        
 }
}
$Book->Close;


用 Spreadsheet::WriteExcel 和 Spreadsheet::ParseExcel 模块
http://blog.csdn.net/fl49809045/archive/2010/06/01/5638396.aspx
新建excel
use strict;
use warnings;
 
use Encode;
use Spreadsheet::WriteExcel;

# 设置new一个对象出来,并写上需要存成什么名字的xls
my $xls = Spreadsheet::WriteExcel->new( "c:/fukaiss.xls" );
 
# xml的内容名字
my $xlsContent = $xls->add_worksheet( 'report' );
 
# 这是对格式的设置,我们可以设置一个标题的,一个内容的,
# 我现在只设置一个内容
my $contentStyle = $xls->add_format();
    $contentStyle->set_size( 8 );
    $contentStyle->set_bold();           #设置字体为粗体
    $contentStyle->set_align( 'center' );#设置单元格居中
    $contentStyle->set_text_wrap();      #是否回车换行
    $contentStyle->set_color('red');     #设置单元格前景色为红色
 
# 写表内容(格式是使用上面添加的表格式)
# 这个中的A,B,C是设置的excel中上面行的字母
# 这个地方中的文字我用了decode这样中文才能正常显示
# 最后面的contentStyle是我上面设置的行风格
 
$xlsContent->write( "A1", decode( 'utf8', "name" ), $contentStyle );
$xlsContent->write( "B1", decode( 'utf8', "time" ), $contentStyle );
$xlsContent->write( "C2", decode( 'utf8', "language" ), $contentStyle );
#$xlsContent->write($row, $col, 'Hi Excel!', $format); #行,列,内容,格式
 
#这是关闭,上面的内容设置成循环就能生成很多行了
$xls->close();



读取excel
#!/usr/bin/perl
use Spreadsheet::Read;
use Data::Dumper;
use Smart::Comments;
 
my $file = 'c:/fukaiss.xls';
my $spreadsheet = ReadData( $file) or die "Cannot read file ";#指定读的文件名
my $sheet_count = $spreadsheet->[0]{sheets} or die "No sheets in $file\n"; #这个是查有几个sheet
for my $sheet_index (1 .. $sheet_count){
    my $sheet = $spreadsheet->[$sheet_index] or next;
    printf("%s - %2d: [%-s] %3d Cols, %5d Rows\n",
                     $file,$sheet_index,$sheet->{label},$sheet->{maxcol},$sheet->{maxrow});#label是sheet名
    for my $row (1 .. $sheet->{maxrow}) {
        print join "\t" => map {
                                my $data = $sheet->{cell}[$_][$row] ;
                                defined $data ? $data : "-";
                }1 .. $sheet->{maxcol};
        print "\n";
    };
}

分享到:
评论

相关推荐

    perl-site的压缩包

    "perl-site" 指的是 Perl 的模块仓库 Site CPAN ( Comprehensive Perl Archive Network ) 中的模块,这里特指与解析 Excel 文件相关的模块。Site CPAN 是 Perl 社区维护的一个额外的模块存储库,包含了不在标准 CPAN...

    perl解析excel文件

    Perl是一种强大的脚本编程语言,尤其在文本处理和系统管理任务方面表现突出。...总的来说,使用Perl解析Excel文件是一项常见的任务,通过利用Perl的强大功能和丰富的生态系统,可以高效地完成数据提取和处理工作。

    perl解析excel

    perl excel

    Perl SpreadSheet_Excel

    Perl SpreadSheet_Excel 是一个基于Perl编程语言的库,用于解析和操作Microsoft Excel电子表格文件。这个库的核心组件是 `Spreadsheet::ParseExcel` 模块,它允许开发者读取Excel文件的内容,包括单元格的数据、公式...

    perl Excel操作

    `Spreadsheet::ParseXLSX`模块提供了解析Excel文件的能力。使用这个模块,你可以遍历工作表、获取单元格值、检查公式以及处理样式和日期。以下是一个基本的读取Excel文件的例子: ```perl use Spreadsheet::...

    perl读取EXCEL文件输出到XML

    该模块提供了对 EXCEL 文件的读取和解析功能,能够读取单元格的值、样式和公式等信息。 知识点三:XML 文件生成 XML 是一种标记语言,用于存储和传输数据。Perl 可以使用 XML::Writer 模块来生成 XML 文件。该模块...

    Perl读写excel

    my $workbook = Spreadsheet::WriteExcel->new('example.xls'); my $worksheet = $workbook->add_worksheet(); $worksheet->write(0, 0, 'Hello'); $worksheet->write(1, 0, 'World'); ``` 这将创建一个名为...

    perl example for read excel

    这段代码首先导入了`Spreadsheet::ParseXLSX`模块,然后创建一个解析器对象并调用`parse()`方法解析Excel文件。如果文件解析成功,它将遍历工作表中的每个单元格,并打印出它们的值。 `auto.pl`可能是一个自动化...

    excel_Perl_源码

    标题中的“excel_Perl_源码”表明我们将讨论如何使用Perl编程语言来处理Excel文件,具体来说是关于从数据文件中提取数据并将其转化为Excel表格的过程。Perl是一种强大的文本处理语言,非常适合处理各种数据格式,...

    perl Spreadsheet

    - 解析工作簿:通过`Spreadsheet::ParseExcel->parse()`函数,可以打开并解析Excel文件,返回一个Workbook对象。 - 访问工作表:使用`workheets()`方法获取Workbook中的所有工作表,然后通过`worksheet()`方法选择...

    可以自动生成Verilog的Testbench的Perl脚本

    Perl脚本通过解析Verilog源代码,可以自动识别模块接口,生成相应的Testbench结构。它会为每个输入信号提供默认值或随机序列,为输出信号设置断言,以确保设计在各种条件下都能正确工作。此外,脚本可能还包含对高级...

    perl 模(Spreadsheet-ParseExcel)

    Perl 模块 `Spreadsheet::ParseExcel` 是一个用于解析 Excel 文件的库,它允许开发者在 Perl 程序中读取和处理 Excel 工作表的数据,而无需依赖 Microsoft Office 或其他重型软件。这个模块提供了高效且灵活的方式来...

    QXls与Perl.zip

    本篇文章将深入探讨如何使用开源库QXls和Perl来操作xlsx格式的Excel文件,以及相关的技术细节。 首先,QXls是Qt框架下的一个库,专门用于处理xlsx文件,无需依赖Microsoft Excel或WPS等应用。Qt是一个跨平台的应用...

    php直接读excel Spreadsheet_Excel_Reader

    然后创建一个`Spreadsheet_Excel_Reader`实例,并调用`read()`方法来解析Excel文件。例如: ```php require_once 'Spreadsheet_Excel_Reader.php'; $reader = new Spreadsheet_Excel_Reader(); $reader->read('...

    VB运行perl脚本工具

    这是一个运行Perl脚本的基础,因为它可以解析和执行Perl代码。 2. 引入Perl COM对象:VB可以利用Perl的COM(Component Object Model)支持来创建一个Perl解释器对象,通过这个对象,VB可以直接调用Perl脚本。在VB中...

    automake、autoconf、m4和perl

    例如,perl-5.20.0是Perl的一个版本,而libxls-0.2.0可能是与读取Excel文件相关的库,这表明你可能在处理与文件解析相关的工作。 安装和使用这些工具通常涉及以下步骤: 1. 下载源代码包,如.tar.gz文件。 2. 解压...

    perl SVG包

    结合Perl的其他库,如DBI(数据库接口)或Excel::Writer::XLSX,可以将动态生成的数据可视化,形成直观的报告或分析结果。 `svg_lib`这个文件可能是包含SVG库的一些示例、测试代码或者额外的图形资源。在实际开发中...

    perl操作office

    例如,`Office::ParseXLS`模块用于解析Excel文件,而`Spreadsheet::WriteExcel`模块则可以用来创建新的Excel文件或者写入数据到已有的Excel文件中。对于Word文档,`Win32::OLE`模块允许通过COM接口与Word应用程序...

    perl gui 日志分析工具

    Perl GUI日志分析工具是一款基于Perl编程语言开发的图形用户界面应用,专为解析和分析日志文件设计。它能够帮助用户快速理解日志数据,提取关键信息,从而进行故障排查、性能监控或数据分析。这款工具包含源码,使得...

    华为交换机ARP表采集Perl脚本

    在这个脚本中,Perl的灵活性和强大的文本解析能力使其成为理想的选择,可以方便地与华为交换机进行通信,并解析返回的数据。 `HuaWeiSwitchArpGeter.pl`是主脚本文件,它包含了整个ARP表采集流程的逻辑。通常,它会...

Global site tag (gtag.js) - Google Analytics