如何使用Spreadsheet :: WriteExcel从数字日志数据创build图表?

我使用csv2xls.pl将文本日志转换为.xls格式,然后创build一个图表,如下所示:

 my $chart3 = $workbook->add_chart( type => 'line' , embedded => 1); # Configure the series. $chart3->add_series( categories => '=Sheet1!$B$2:$B$64', values => '=Sheet1!$C$2:$C$64', name => 'Test data series 1', ); # Add some labels. $chart3->set_title( name => 'Bridge Rate Analysis' ); $chart3->set_x_axis( name => 'Packet Size ' ); $chart3->set_y_axis( name => 'BVI Rate' ); # Insert the chart into the main worksheet. $worksheet->insert_chart( 'G2', $chart3 ); 

我可以在.xls文件中看到图表。 但是,所有的数据都是文本格式,而不是数字,所以图表看起来是错误的。

在应用此创build图表function之前,如何将文本转换为数字?

另外,如何在创build图表之前对.xls文件进行sorting?

如果Excel将数据显示为文本,则将该单元格创build为文本。

你从csv2xls.pl中省略了代码,所以很难猜出确切的问题是什么。 可能您正在使用Spreadsheet :: WriteExcel方法write_string()而不是write_number()或通用write() 。

另外,如何在创build图表之前对.xls文件进行sorting?

Excel文件格式没有sorting选项。 加载文件后,用Excel进行sorting。 解决方法是在使用Sreadsheet :: WriteExcel进行转换之前对input的CSV文件进行sorting。

在excel中这样做的方法是将其插入到另一个单元格中:

 =value(trim(clean(a1))) 

其中a1是包含以文本forms出现的原始数据的单元格。 然后使用这个单元格参考为您的图表。

HTH