File error on opening spreadsheet created with Spr

2019-09-02 06:01发布

I was using Spreadsheet::WriteExcel to create xls file using perl. When the range of spreadsheet increased, the Microsoft excel shows an alert before opening the file "File Error: Data may have been lost".

Please help me to solve this.

Here is the code

my $row = 2;
foreach my $sid(array of students objects)
{
        my $s = $students->{$sid};
    my $cc = 0;
my $wall = f1($x, $y, $z);#f1 is a method returns hash of arrays that have to write on excel having keys @key_array
foreach my $key (@key_array) {
my $t_row = $row;
my $i_c = 0;
my $t_col = 0;
my $m_row = $max_row;
while($m_row > 0){
    $t_col = 3+($cc*7);
    if($cc == 0){
    $ws->write($t_row, 0,
                [$s->{first_name}, $s->{last_name}, $s->{l_name}], $fmt_wrap    
            );
    }
    if(defined $wall->{$key}->[$i_c] ){
    $ws->write($t_row, $t_col, $wall->{$key}->[$i_c], $fmt_wrap);
    } else {
    $ws->write($t_row, (3+$cc*7),["","","","","","",""], $fmt_wrap);                
    }
    $t_row++;
    $i_c++;
    $m_row--;
 }#while loop
    $ws->write($t_row-1, 3+$company_format*$max_step,
                [ (scalar keys %{$s->{videos}}), $s->{total_pageviews} ], $fmt
            );
 $cc++;
 $t_row = 2;
}#foreach loop
$row+=$max_row;
}#foreach student array

标签: excel perl
1条回答
\"骚年 ilove
2楼-- · 2019-09-02 06:15

I have found answer. In the code there was a line which write data into a cell multiple times. So i found that multiple write attempt to a particular cell can cause file corruption.

查看更多
登录 后发表回答