gpt4 book ai didi

regex - Perl:通过搜索和替换解析 Excel

转载 作者:行者123 更新时间:2023-12-02 17:22:53 30 4
gpt4 key购买 nike

我正在构建一个 PERL 脚本来搜索和替换 EXCEL 单元格 A1。我的代码中有一个错误,它会在输入文件中找到“Apples”,但不会在输出文件中写入将“Apples”替换为“Peaches”。

我有一个 XLS EXCEL INPUT 文件 (file_in.xls),其内容显示如下:

A---------------B
-----------------------
1 Apples | Carrots
-----------------------
2 Oranges | Spinach
-----------------------
3 Grapes | Celery
-----------------------

我需要在 EXCEL 输出文件 (file_out.xls) 的单元格 (A1) 中执行“苹果”到“桃子”的搜索/替换:

A----------------B
-----------------------
1 Peaches | Carrots
-----------------------
2 Oranges | Spinach
-----------------------
3 Grapes | Celery
-----------------------

这是 Perl 代码:

 use v5.10.0;
use warnings;

use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::SaveParser;
use Spreadsheet::WriteExcel;

my $parser = Spreadsheet::ParseExcel::SaveParser->new();
my $file1 = $parser->Parse("C:/Perl/scripts/file_in.xls");
my $workbook_R = $parser->parse('file_in.xls');

my $workbook_W = Spreadsheet::WriteExcel->new('C:\Perl\scripts\file_out.xls');
my $worksheet_W = $workbook_W->add_worksheet();

my $sheet = ${ $file1->{Worksheet_R} }[0];

for my $worksheet_R ( $workbook_R->worksheets() ) {

my ( $row_min, $row_max ) = $worksheet_R->row_range();
my ( $col_min, $col_max ) = $worksheet_R->col_range();

for my $row ( $row_min .. $row_max ) {
for my $col ( $col_min .. $col_max ) {

my $cell = $worksheet_R->get_cell( $row, $col );
next unless $cell;

if($cell->value() =~ /Apples/) {
$worksheet_R->write($cell,"Oranges");}
}
}
}

最佳答案

您的代码存在一些问题:

  1. 您没有写入输出文件,$worksheet_W
  2. 您没有写出其中没有苹果的单元格的内容。

    for my $row ( $row_min .. $row_max ) {
    for my $col ( $col_min .. $col_max ) {

    my $cell = $worksheet_R->get_cell( $row, $col );
    // if the cell contains Apples, write 'Peaches' instead
    if($cell->value() =~ /Apples/) {
    $worksheet_W->write($row, $col,"Peaches");
    }
    else {
    // print the existing cell contents
    $worksheet_W->write($row, $col, $cell);
    }
    }
    }

关于regex - Perl:通过搜索和替换解析 Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51697126/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com