如何使用Spreadsheet :: WriteExcel从数字日志数据创建图表?
问题描述:
我以前csv2xls.pl
到一个文本日志转换成.xls
格式,然后我创建一个图表,如下:如何使用Spreadsheet :: WriteExcel从数字日志数据创建图表?
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
文件。但是,所有数据都是文本格式,而不是数字,因此图表看起来不正确。
在应用此创建图表功能之前,如何将文本转换为数字?
另外,如何在创建图表之前对.xls
文件进行排序?
答
做Excel中的方法是在这个插在不同的细胞:
=value(trim(clean(a1)))
其中,A1是含有快到了文本的原始数据的单元格。然后使用此单元格参考进行制图。
HTH
答
如果Excel显示数据为文本,那么你所创建的细胞为文本。
您从csv2xls.pl中省略了代码,因此很难猜测确切的问题是什么。可能您正在使用Spreadsheet :: WriteExcel方法write_string()而不是write_number()或通用的write()。
另外,如何在创建图表之前对.xls文件进行排序?
Excel文件格式没有排序选项。文件加载完成后,由Excel进行排序。解决方案是在使用Sreadsheet :: WriteExcel将其转换之前对输入的CSV文件进行排序。