- 论坛徽章:
- 1
|
本帖最后由 yilongyansha 于 2016-01-23 12:19 编辑
使用Spreadsheet: arseExcel::SaveParser添加excel内容
不知道哪里错了,新添加的单元格内容的格式设置不了?
我的代码如下:use strict;
use warnings;
use Spreadsheet: arseExcel;
use Spreadsheet: arseExcel::SaveParser;
my $week = 0;
my $num = 8;
my %hash = (
"12" => "1.8",
"13" => "4",
"15" => "9.3",
"16" => "3.4",
"14" => "5.1",
"17" => "11.6"
);
my %excel_row;
my $oldexcel = 'test.xls';
#读取旧excel $meter对应的行号
my $parse2 = Spreadsheet: arseExcel->new();
my $workbook = $parse2-> arse($oldexcel);
my $worksheet2_1 = $workbook->worksheet(0);
my ($row_min,$row_max) = $worksheet2_1->row_range();
my ($col_min,$col_max) = $worksheet2_1->col_range();
foreach my $row ($row_min .. $row_max) {
my $addr = $worksheet2_1->get_cell($row,0)->value();
$excel_row{$addr} = $row;
}
my $parser = Spreadsheet: arseExcel::SaveParser->new();
my $newexcel = $parser-> arse($oldexcel);
my $worksheet1 = $newexcel->worksheet(0);
$worksheet1->AddCell(1,$num,$num);
foreach my $addr (sort {$a <=> $b} keys %hash) {
my $color = &colors($hash{$addr},$week);
my $color_format = $newexcel->AddFormat(align => 'center',bg_color => $color);
my $addr_row = $excel_row{$addr};
my $addr_col = $num;
$worksheet1->AddCell($meter_row,$meter_col,$hash{$addr},$color_format); #不知道是不是这错了
}
$newexcel->SaveAs('test.xls');
本来的想法是:单元格背景颜色设置:当$week=0时,如果数值大于等于4,则设置color为cyan,否则设置为red;当$week=1时,如果数值大于等于4,则设置color为orange,否则设置为gray
新添加的内容格式怎么没有呢? |
|