Perl 操作 excel
2015-08-04 18:11
453 查看
参考与 http://www.jb51.net/article/33679.htm
先安装Spreadsheet-ParseExcel和Spreadsheet-
parse_excel.pl
先安装Spreadsheet-ParseExcel和Spreadsheet-
读取Excel
Book.xls sheet1XML FPS CPU GPU Memory 001 12 3.9 19.3 14.5 002 17 10 17.2 25.7 003 15 28 51.7 36.4 004 25 62 77.1 36.9 005 22 74 85.4 35.5
parse_excel.pl
#!/usr/bin/env perl use strict; use warnings; use 5.010; use Spreadsheet::ParseExcel; sub parse { my $excel_name = "Book.xls"; my $parser = Spreadsheet::ParseExcel->new(); my $workbook = $parser->parse($excel_name); if(! defined $workbook) { die $parser->error(); } my @worksheets = $workbook->worksheets(); my $booksheet = $worksheets[0]; my($row_min, $row_max) = $booksheet->row_range(); my($col_min, $col_max) = $booksheet->col_range(); say "[$row_min, $row_max]"; say "[$col_min, $col_max]"; for my $row ($row_min .. $row_max) { for my $col ($col_min .. $col_max) { my $cell = $booksheet->get_cell($row, $col); next unless $cell; say "($row, $col):".$cell->value(); } } } sub main { parse } main
写Excel
此方法会覆盖原来的数据。#!/usr/bin/env perl use warnings; use strict; use Spreadsheet::WriteExcel; sub write_excel { my $book_name = "Book.xls"; my $workbook = Spreadsheet::WriteExcel->new($book_name); my $worksheet = $workbook->add_worksheet(); my $format = $workbook->add_format(); $format->set_bold(); $format->set_color('red'); # 前景色 $format->set_align('center'); my($row, $col) = (0, 0); $worksheet->write($row, $col, "Tom", $format); # 通过坐标方式(x, y)来写入 $worksheet->write('A2', "123456"); # 通过cell的名称(A2)来写入 } sub main { write_excel } main
更新Excel
此方法可能会丢失cell的格式信息use Spreadsheet::ParseExcel::SaveParser; sub update_excel { my $book_name = "Book.xls"; my $parser = Spreadsheet::ParseExcel::SaveParser->new(); my $temp = $parser->Parse($book_name); my $sheetname = 'Sheet1'; my $worksheet = $temp->worksheet($sheetname); my $cell = $worksheet->get_cell(0, 0); my $format = $cell->{FormatNo}; $worksheet->AddCell(0, 0, "xyz", $format); $temp->SaveAs($book_name); }
相关文章推荐
- ios修改textField的小技巧
- iOS中bundle的意义
- JAVA 浮点数转化为百分数,分离整数和小数部分 分类: Java 2015-08-04 18:11 10人阅读 评论(0) 收藏
- javascript
- SQL-sql语句修改表
- iOS开发里的Bundle是个啥玩意?!
- JSONArray传值的使用小结
- C#正则表达式
- 嵌入式 fork与vfork的区别
- 练习2
- java杂笔
- 自动化打开并连接visual studio emulator for android,支持eclipse vs 以及as调试
- php--字符转义
- php--字符转义
- php--字符转义
- table 详解
- Java相等性测试
- UDP套接字编程
- linux 64位下的 mongodb 安装
- 项目笔记