Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl:Spreadsheet::WriteExcel不使用EXCEL中的百分比公式_Perl - Fatal编程技术网

Perl:Spreadsheet::WriteExcel不使用EXCEL中的百分比公式

Perl:Spreadsheet::WriteExcel不使用EXCEL中的百分比公式,perl,Perl,下面是我的代码 使用电子表格::WriteExcel # Create a new Excel workbook my $workbook = Spreadsheet::WriteExcel->new('ttif.xls'); $workbook->compatibility_mode(); # Add a worksheet $worksheet = $workbook->add_worksheet(); # Add and define a format $forma

下面是我的代码

使用电子表格::WriteExcel

# Create a new Excel workbook
my $workbook = Spreadsheet::WriteExcel->new('ttif.xls');
 $workbook->compatibility_mode();
# Add a worksheet
$worksheet = $workbook->add_worksheet();

#  Add and define a format
$format = $workbook->add_format(); # Add a format
$format->set_bold();
$format->set_color('blue');
$format->set_align('center');
my $row = 2;
my $count = 1;
my $lat = '28.580022';
my $long = '77.315362';
my $alt_range = 300;
my $ttf_range = 20;
my $gps_time  = 138955387;
$worksheet->write('A1',Latitude);
$worksheet->write('B1',Longitude);
$worksheet->write('C1',Alt);
$worksheet->write('D1',TTFF);
$worksheet->write('E1','GPS Time');
while ($count <= 15725)
{
$worksheet->write("A$row",$lat);
$worksheet->write("B$row",$long);
my $random_number = int(rand($alt_range));
$worksheet->write("C$row",$random_number);
$random_number = int(rand($ttf_range));
$worksheet->write("D$row",$random_number);
$worksheet->write("E$row",$gps_time);
    $worksheet->write("H$row",$count);
$worksheet->write("I$row","=H$row/100");
$count++;
$row++;
}
my $percentile = $worksheet->store_formula('=PERCENTILE(D:D,I1)');
my $row  = 2;
my $count = 1;
while ($count <=100)
{
    $worksheet->repeat_formula("J$row",$percentile,$format,'I1',"I$row");
$count++;
$row++;
}
#创建新的Excel工作簿
my$工作簿=电子表格::WriteExcel->new('ttif.xls');
$workbook->compatibility_mode();
#添加工作表
$worksheet=$workbook->add_worksheet();
#添加并定义格式
$format=$workbook->add_format();#添加格式
$format->set_bold();
$format->set_color('blue');
$format->set_align('center');
我的$row=2;
我的$count=1;
我的$lat='28.580022';
my$long='77.315362';
我的$alt_范围=300;
我的$ttf_范围=20;
我的$gps_时间=138955387;
$worksheet->write('A1',纬度);
$worksheet->write('B1',经度);
$worksheet->write('C1',Alt);
$worksheet->write('D1',TTFF);
$worksheet->write('E1','GPS Time');
而($count write(“A$row,$lat”);
$worksheet->write(“B$row”,长$long);
我的$random_number=int(rand($alt_range));
$工作表->写入(“C$行,$随机数);
$random_number=int(兰特($ttf_范围));
$工作表->写入(“D$行,$随机数);
$工作表->写入(“E$行,$gps\U时间);
$worksheet->write(“H$row”、$count);
$worksheet->write(“I$row”,“=H$row/100”);
$count++;
$row++;
}
我的$percentile=$worksheet->store_公式('=percentile(D:D,I1)');
我的$row=2;
我的$count=1;
而($count repeat_公式($J$row,$percentile,$format,'I1','I$row”);
$count++;
$row++;
}
当我在excel中打开生成文件而不是显示百分位结果时,它会显示#VALUE!错误
请帮助未正确解析
百分位数
()公式(在本例中),您将从公式中获得
#值

您可以通过修改repeat_formula()参数来修复此问题,如下所示:

$worksheet->repeat_formula( "J$row", $percentile, $format, 'I1', "I$row",
    '_ref2d' => '_ref2dV' );
最后一对额外的match/replace标记有助于解析器为正在使用的函数选择正确的公式类

或者,您可以尝试使用与相同API的模块,但该模块在公式方面不会遇到此类问题,并且不需要使用
存储_公式
()/
重复_公式
()性能解决方法。在选择迁移到较新的模块之前,请阅读文档,以确保它满足您的要求