У меня есть вопрос. У меня есть 2 разных листа Excel. Из первого листа Excel я хочу извлечь определенные строки из определенных столбцов в строку другого листа Excel. Но у меня есть проблема с извлечением определенных строк из первого листа Excel с помощью сценария Perl. Функции 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. Вот, например, я хочу извлечь все программное обеспечение, которое используется Питом и находится в отделе маркетинга. Эти программы я хочу извлечь в другой лист 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;
}