gpt4 book ai didi

perl - 如何从 Spreadsheet::ParseExcel 数据创建哈希的哈希?

转载 作者:行者123 更新时间:2023-12-01 12:56:36 25 4
gpt4 key购买 nike

我正在使用 Spreadsheet::ParseExcel模块。我想用 Excel 数据创建哈希的哈希:

{
'P343453' => {
'Date' => 03022011,
'Method' => 'No',
'Time' => 1440,
},
'P343763' => {
'Date' => 03022011,
'Method' => 'YES',
'Time' => '1745',
}
}

我现在有这样的东西:

{
'P343453' => [
'03022011',
'No',
'1440',
],
'P343763' => [
'03022011',
'YES',
'1745',
],
}

这是我的代码:

my @worksheets = $workbook->worksheets();
warn "More than 1 worksheet found\n" if @worksheets > 1;

# Only work with first page.
my $worksheet = $worksheets[0];

my ( $row_min, $row_max ) = $worksheet->row_range();
my ( $col_min, $col_max ) = $worksheet->col_range();
my @required_col = (1 .. $col_max);
my @value;

##to get the headers of the excel file;
for my $row ( 0 .. 0 ) {
@value = map {
my $cell = $worksheet->get_cell($row, $_);
$cell ? $cell->value() : '';
} @required_col;
}

# Skip header row
my $sample_details = {};
for my $row (1 .. $row_max ) {
my @data = map {
my $cell = $worksheet->get_cell($row, $_);
$cell ? $cell->value() : '';
} @required_col;
$sample_details->{$worksheet->get_cell($row,0)->value()} = \@data
if defined $worksheet->get_cell($row, 0)->value();
}

我应该如何修改代码以将键分配给数组 @value 中哈希的 hashrefs?

最佳答案

# Skip header row
my $sample_details = {};
for my $row (1 .. $row_max ) {
my @data = map {
my $cell = $worksheet->get_cell($row, $_);
$cell ? $cell->value() : '';
} @required_col;

foreach my $col (@values) {
$sample_details->{$worksheet->get_cell($row,0)->value()}{$col} = shift @data if defined $worksheet->get_cell($row, 0)->value();
}
}

关于perl - 如何从 Spreadsheet::ParseExcel 数据创建哈希的哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9483160/

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