Perl:将数据从哈希转储到Excel

吉尔448

我有一个键和Values(array)的哈希。我想将它们转储到电子表格中,但是很难安排它们。

%hash key1-
> foo bar
key2-> john adam gill
key3->苹果香蕉芒果橙

代码:

use strict;
use warnings;
use Excel::Writer::XLSX;

my $pattern = "BEGIN_";
my $format;
my @keys = qw(key1 key2 key3);
foreach my $key(@keys){
     open my $fh, "<","filename.txt" or die $!;
      while ( <$fh> ) {
        if (/$pattern/) {
        push(@matching_lines, $_);
      }
    }
    $hash{$key} = [@matching_lines] ; 
   for (@matching_lines) { $_ = undef } ; #Emptying the array contents,to reuse it for for all the other keys
}

my $workbook = Excel::Writer::XLSX->new( 'c:\TEMP\filename.xlsx' ); 
 if (not defined $workbook)
{
    die "Failed to create spreadsheet: $!";
}
my $worksheet = $workbook->add_worksheet();

#  Add and define a format
$format = $workbook->add_format();
$format->set_bg_color( 'yellow' );

my $row = 1;
my $col = 0;

foreach my $k (keys %hash)
{
     $worksheet->write($row, $col, $k, $format); # title
     $worksheet->write_col($row+1, $col, $hash{$k}); #value
     $col++;
}
$workbook->close() or die "Error closing file: $!";   

电流输出

在此处输入图片说明
期望的输出

在此处输入图片说明

拉玛先生

您没有正确清空@matching_lines数组。这行:

for (@matching_lines) { $_ = undef } 

将数组值设置为undef,但不删除它们
例如,如果@matching_lines('foo', 'bar'),现在变为(undef, undef)以后添加baz添加时qux,它将变为(undef, undef, 'baz', 'qux')undef将它们添加到工作表时,这些将成为空白单元格。

要正确清空数组,请使用:

@matching_lines = ();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数据写入 SQL 并将其转储到 Excel

来自分类Dev

每次运行脚本时,将Perl哈希转储到新的txt文件中

来自分类Dev

将数据转储到数据框,然后绘制

来自分类Dev

os / exec将mysql数据转储到文件

来自分类Dev

将数据转储到Elasticsearch时“打开的文件太多”

来自分类Dev

FFMPEG:将YUV数据转储到AVFrame结构中

来自分类Dev

通过STDIN将数据输入到机械转储吗?

来自分类Dev

sqlalchemy转储元数据到文件

来自分类Dev

sqlalchemy转储元数据到文件

来自分类Dev

将大输出转储到变量

来自分类Dev

将远程转储还原到RDS

来自分类Dev

将fetchall()结果转储到json

来自分类Dev

将 DataFrame 转储到 JSON 记录

来自分类Dev

使用PHP将Wiktionary XML数据转储到MySQL数据库中

来自分类Dev

将数据框中的列数据转储到python中的列表

来自分类Dev

AWS 数据管道:将数据转储到 3 个 s3 节点

来自分类Dev

如何将原始串行数据转储到磁盘

来自分类Dev

将树数据结构转储到文件或从文件恢复

来自分类Dev

将所有Raima db_VISTA版本3.20数据转储到文本

来自分类Dev

PhpStorm可以将MySQL数据库转储到sql文件吗?

来自分类Dev

将MySQL转储文件还原到数据库中

来自分类Dev

如何在将数据转储到其中之前清空json文件

来自分类Dev

使用python将xml数据转储到csv文件中的单元格中

来自分类Dev

如何将原始串行数据转储到磁盘

来自分类Dev

可以将二进制数据转储到终端中被视为危险吗?

来自分类Dev

PhpStorm可以将MySQL数据库转储到sql文件吗?

来自分类Dev

如何将数据转储到工作簿并保存副本?

来自分类Dev

将mysql转储文本文件还原到数据库

来自分类Dev

使用Marshal将Sqlite内存数据库转储到磁盘

Related 相关文章

热门标签

归档