当前位置:  开发笔记 > 编程语言 > 正文

如何检查文件大小并将该结果添加到Perl中的Excel电子表格中?

如何解决《如何检查文件大小并将该结果添加到Perl中的Excel电子表格中?》经验,为你挑选了2个好方法。

目前我使用简单的shell one-liner监视特定文件:

filesize=$(ls -lah somefile |  awk '{print $5}')

我知道Perl有一些很好的模块可以处理Excel文件所以我们的想法就是每天运行那个检查,也许用cron,然后将结果写在电子表格上以供进一步统计使用.



1> Aristotle Pa..:

您可以使用该-s运营商获取文件的大小和电子表格:: ParseExcel的和电子表格:: WriteExcel模块生产与信息的更新的电子表格.Spreadsheet :: ParseExcel :: SaveParser可让您轻松组合这两者,以防您想用新信息更新现有文件.如果您使用的是Windows,则可能需要自动执行Excel本身,可能需要借助Win32 :: OLE.



2> szabgab..:

您可以使用-s运算符检查文件的大小.

use strict;
use warnings;

use File::Slurp qw(read_file write_file);
use Spreadsheet::ParseExcel;
use Spreadsheet::ParseExcel::SaveParser;
use Spreadsheet::WriteExcel;

my $file       = 'path_to_file';
my $size_file  = 'path_to_file_keeping_the_size';
my $excel_file = 'path_to_excel_file.xls';

my $current_size = -s $file;
my $old_size = 0;
if (-e $size_file) {
   $old_size = read_file($size_file);
}

if ($old_size new;
        my $excel = $parser->Parse($excel_file);
        my $row = 1;
        $row++ while $excel->{Worksheet}[0]->{Cells}[$row][0];
        $excel->AddCell(0, $row, 0, scalar(localtime));
        $excel->AddCell(0, $row, 1, $current_size);

        my $workbook = $excel->SaveAs($excel_file);
        $workbook->close;

    } else {
        my $workbook  = Spreadsheet::WriteExcel->new($excel_file);
        my $worksheet = $workbook->add_worksheet();
        $worksheet->write(0, 0, 'Date');
        $worksheet->write(0, 1, 'Size');

        $worksheet->write(1, 0, scalar(localtime));
        $worksheet->write(1, 1, $current_size);
        $workbook->close;
    }
}

write_file($size_file, $current_size);

编写Excel文件的一种简单方法是使用 Spreadsheet :: Write.但是如果你需要更新现有的Excel文件,你应该查看 Spreadsheet :: ParseExcel.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有