如何使用Perl脚本从一个Excelsheet中提取数据并将其插入另一Excelsheet

时间:2018-11-13 21:09:38

标签: excel perl

我有一个问题。我有2个不同的Excel工作表。从第一个Excel工作表中,我想从特定列中提取一些特定行到另一个Excel工作表的行中。但是我在使用Perl脚本从第一张Excel工作表中提取特定行时遇到问题。函数autofilter()和filter_columns()似乎不起作用。这种情况可能有点复杂,但是如果有人可以帮助我,我将非常高兴。

<table><tbody><tr><th>Software</th><th> </th><th> </th><th>User</th><th> </th><th>Division</th></tr><tr><td>Software1</td><td> </td><td> </td><td>Pete;John</td><td> </td><td>Marketing</td></tr><tr><td>Software2</td><td> </td><td> </td><td>Jack;Pete</td><td> </td><td>Marketing</td></tr><tr><td>Software3</td><td> </td><td> </td><td>Jessica;Tina</td><td> </td><td>Sales</td></tr><tr><td>Software4</td><td> </td><td> </td><td>Timmy;Ron</td><td> </td><td>Finance</td></tr><tr><td>Software5</td><td> </td><td> </td><td>Pete;Oliver</td><td> </td><td>Marketing</td></tr></tbody></table>

这是Excel工作表的外观。例如,在这里我要提取Pete使用的并且在Marketing部门中的每个软件。我想将这些软件提取到另一个Excel工作表中。但是首先,我想着重于数据过滤。

我是编程的绝对初学者。除了下面的代码,我不能做更多的事情,至少可以从Excel工作表中提取所有软件。

use strict;
use warnings;
use Spreadsheet::WriteExcel;
use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::SaveParser;
use Spreadsheet::ParseExcel::Worksheet;
use WIN32::OLE::Const 'Microsoft Excel'
use Spreadsheet::WriteExcelXML;

# Open an existing file with SaveParser
my $parser = Spreadsheet::ParseExcel->new();
my $template = $parser->Parse('Softwarelist.xls');

# Get the first worksheet of Softwarelist Workbook
my $worksheet = $template->worksheet(0);

# Filtering Software Column
my $SELECT_COL = 0;

my ($row_min, $row_max) = $worksheet->row_range();
for (;$row_min<$row_max; )
    {
        my $cell = $worksheet->get_cell($row_min, $SELECT_COL);
        next unless $cell;
        $cell = $cell->value();
        print "$cell\n"
        $row_min = $row_min +1;
    }

0 个答案:

没有答案