如何使用Perl向现有的Excel电子表格添加新行?

4

我用Perl创建了我的Excel表格a.xls,其中有以下字段:

date         name    eid     
13/jan/2010   asa    3175

下次编译时,如果日期比上一次日期更晚,则必须更新如下:

date         name   eid
13/jan/2010  asa    3175
14/jan/2010  stone  3180

如果日期与上一行的日期相同,如最后一行的日期为2010年1月14日,当前日期也是2010年1月14日,则不应插入任何行,只需更新先前的记录。
3个回答

5

0
    use Win32::OLE::Const 'Microsoft Excel';

    $Excel = Win32::OLE->new('Excel.Application', 'Quit');
    $Excel->{DisplayAlerts}=0;

    my $workbookpath = "D:\\temp.xlsx";
    my $workbook = $Excel->Workbooks->Open($workbookpath);
    # lets think if you created multiple sheets in an workbook, you can refer each workbook by name(Ex: sheet1 here)
    my $sheet = $workbook->WorkSheets("sheet1");
    #Insert row in a particular row value
    $sheet->Cells(8,1)->EntireRow->Insert;
    #save and close workbook, its a best practise when you are doing any excel operation
    $workbook->Save;
    $workbook->Close();

1
不要仅仅抛出一大块代码,解释你的解决方案如何以及为什么能够解决问题会提供更多价值。否则,这个答案对未来的访问者没有用处。 - rst-2cv
感谢 @ResetACK 的建议。 - Akshit

0

对于使用Excel 2007文件,使用Excel::Writer::XSLX,您无法做到这一点。截至2012年6月的0.47版本发布:

该模块目前还不能用于写入现有的Excel XLSX文件。

您只能创建新文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接