用Perl操作Excel文档

在Linux或者Unix上操作(生成)Excel,CPAN上提供了Spreadsheet::WriteExcel 和 Spreadsheet::ParseExcel这两个模块。下面我们就来看看 Spreadsheet::WriteExcel 和 Spreadsheet::ParseExcel的使用方法:

首先,我们要在服务器上安装相应的模块

安装 Excel 模块的 PPM 命令

ppm> install OLE::Storage_Lite

ppm> install Spreadsheet::ParseExcel  

ppm> install Spreadsheet::WriteExcel  

读取excel文件:


  1. #!/usr/bin/perl -w  
  2.   
  3.     use strict;  
  4.     use Spreadsheet::ParseExcel;  
  5.   
  6.     my $parser    = Spreadsheet::ParseExcel->new();  
  7.     my $workbook = $parser->Parse('Book1.xls');  
  8.   
  9.    for my $worksheet ( $workbook->worksheets() ) {  
  10.   
  11.         my ( $row_min, $row_max ) = $worksheet->row_range();  
  12.         my ( $col_min, $col_max ) = $worksheet->col_range();  
  13.   
  14.        for my $row ( $row_min .. $row_max ) {  
  15.            for my $col ( $col_min .. $col_max ) {  
  16.   
  17.                 my $cell = $worksheet->get_cell( $row, $col );  
  18.                next unless $cell;  
  19.   
  20.                 print "Row, Col     = ($row, $col)\n";  
  21.                 print "Value        = ", $cell->value(),       "\n";  
  22.                 print "Unformatted = ", $cell->unformatted(), "\n";  
  23.                 print "\n";  
  24.             }  
  25.         }  
  26.     }

生成EXCEL文件:


  1. #!/usr/bin/perl -w  
  2.   
  3. use Spreadsheet::WriteExcel;  
  4.   
  5. # 创建一个新的EXCEL文件  
  6. my $workbook = Spreadsheet::WriteExcel->new('test.xls');  
  7.   
  8. # 添加一个工作表  
  9. $worksheet = $workbook->add_worksheet();  
  10.   
  11. #   新建一个样式  
  12. $format = $workbook->add_format(); # Add a format  
  13. $format->set_bold();#设置字体为粗体  
  14. $format->set_color('red');#设置单元格前景色为红色  
  15. $format->set_align('center');#设置单元格居中  
  16.   
  17. #使用行号及列号,向单元格写入一个格式化和末格式化的字符串  
  18. $col = $row = 0;  
  19. $worksheet->write($row, $col, 'Hi Excel!', $format);  
  20. $worksheet->write(1,    $col, 'Hi Excel!');  
  21.   
  22. # 使用单元格名称(例:A1),向单元格中写一个数字。  
  23. $worksheet->write('A3', 1.2345);  
  24. $worksheet->write('A4', '=SIN(PI()/4)');  
  25. exit;  

posted @ 2011-04-29 14:30  ACE封印  Views(2184)  Comments(0Edit  收藏  举报