Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Perl向现有Excel电子表格添加新行?_Excel_Perl - Fatal编程技术网

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

如何使用Perl向现有Excel电子表格添加新行?,excel,perl,Excel,Perl,我已使用Perl创建了Excel工作表a.xls,其中字段为: date name eid 13/jan/2010 asa 3175 当我下次编译时,如果日期大于上一个日期,则必须像wise一样进行更新: date name eid 13/jan/2010 asa 3175 14/jan/2010 stone 3180 如果日期为上一行日期,因为最后一行日期为2010年1月14日,当前日期也为2010年1月14日,则不

我已使用Perl创建了Excel工作表a.xls,其中字段为:

date         name    eid     
13/jan/2010   asa    3175
当我下次编译时,如果日期大于上一个日期,则必须像wise一样进行更新:

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

如果日期为上一行日期,因为最后一行日期为2010年1月14日,当前日期也为2010年1月14日,则不应插入任何行,而只应更新上一条记录。

参见中的示例。据我所知,AddCell方法可以替换现有单元格或添加新的单元格。

使用Excel 2007文件,使用,您不能这样做。自2012年6月发布的0.47版起:

目前,此模块还不能用于写入现有Excel XLSX文件


您只能创建新文件。

不只是脱口而出一段代码,而是解释您的解决方案解决问题的方式和原因,从而提供更多价值。否则,这个答案对未来的访问者没有用处。谢谢@ResetACK的建议。
    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();