Python 2.7 修改包含图形和图表的现有xlsx工作表
我已经有了xlsx,它由9页组成,其中1-7页由图形组成,而8和9页是空白的。我需要做的是在第8页和第9页写一些数据。我使用python尝试了这个方法,但是在xlsx工作表中写入数据之后,图形和图表消失了 下面的代码我尝试了下面的perl代码来修改现有的xls工作表Python 2.7 修改包含图形和图表的现有xlsx工作表,python-2.7,perl,Python 2.7,Perl,我已经有了xlsx,它由9页组成,其中1-7页由图形组成,而8和9页是空白的。我需要做的是在第8页和第9页写一些数据。我使用python尝试了这个方法,但是在xlsx工作表中写入数据之后,图形和图表消失了 下面的代码我尝试了下面的perl代码来修改现有的xls工作表 注意:这里我将xlsx转换为xls并重新使用 但结果是删除了图形和图表。 有谁能帮我在perl或python中做同样的事情吗 提前感谢。此代码将保留旧代码,并允许您添加一些新代码: use strict; use warnings;
注意:这里我将xlsx转换为xls并重新使用 但结果是删除了图形和图表。 有谁能帮我在perl或python中做同样的事情吗
提前感谢。此代码将保留旧代码,并允许您添加一些新代码:
use strict;
use warnings;
use Excel::Writer::XLSX;
use Spreadsheet::Read;
use Data::Dumper;
# read the file
my $book = ReadData ('Factura.xls');
my @data;
my @sheets = (0..1);
my $workbook = Excel::Writer::XLSX->new( 'Factura_1.xls' );
my $worksheet;
# save the old data
foreach my $sheet (1 .. ($#sheets+1)) {
my @rows = Spreadsheet::Read::rows($book->[$sheet]);
$worksheet = $workbook->add_worksheet($sheet);
foreach my $i (1 .. scalar @rows) {
foreach my $j (1 .. scalar @{$rows[$i-1]}) {
$worksheet->write($i-1, $j-1, $rows[$i-1][$j-1] );
my $chart = $workbook->add_chart( type => 'bar', embedded => 1);
$chart->add_series(
name => '='."1".'!$A$0',
values => '='."1".'!$A$2:$A$15',
);
$worksheet->insert_chart( 'E2', $chart, 25, 10 );
}
}
}
# write new data
$worksheet = $workbook->add_worksheet(3);
$worksheet->write( 0, 0, 'New string' );
您尝试过电子表格::XLSX吗?感谢您的回复,但在新的excel工作表中仍然看不到图形、字体和格式…Hi@Hiten Chedda我插入了一些小的表格来创建图表。
use strict;
use warnings;
use Excel::Writer::XLSX;
use Spreadsheet::Read;
use Data::Dumper;
# read the file
my $book = ReadData ('Factura.xls');
my @data;
my @sheets = (0..1);
my $workbook = Excel::Writer::XLSX->new( 'Factura_1.xls' );
my $worksheet;
# save the old data
foreach my $sheet (1 .. ($#sheets+1)) {
my @rows = Spreadsheet::Read::rows($book->[$sheet]);
$worksheet = $workbook->add_worksheet($sheet);
foreach my $i (1 .. scalar @rows) {
foreach my $j (1 .. scalar @{$rows[$i-1]}) {
$worksheet->write($i-1, $j-1, $rows[$i-1][$j-1] );
my $chart = $workbook->add_chart( type => 'bar', embedded => 1);
$chart->add_series(
name => '='."1".'!$A$0',
values => '='."1".'!$A$2:$A$15',
);
$worksheet->insert_chart( 'E2', $chart, 25, 10 );
}
}
}
# write new data
$worksheet = $workbook->add_worksheet(3);
$worksheet->write( 0, 0, 'New string' );