Как я могу добавить новую строку в существующую таблицу Excel, используя Perl? - PullRequest
4 голосов
/ 14 января 2010

Я создал свой лист Excel a.xls , используя Perl, где у меня есть поле как:

date         name    eid     
13/jan/2010   asa    3175

Когда я буду компилировать в следующий раз, и если дата будет больше предыдущей, тогда она должна обновляться следующим образом:

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

Если дата будет предшествовать дате предыдущей строки, поскольку дата последней строки равна 14/jan/2010, а текущая дата также равна 14/jan/2010, то она не должна вставлять никакие строки, она должна обновлять только предыдущую запись.

Ответы [ 3 ]

5 голосов
/ 14 января 2010

См. Пример в Электронная таблица :: ParseExcel :: SaveParser документации . Как я понимаю, метод AddCell может заменить существующую ячейку или добавить новую.

0 голосов
/ 23 июня 2018
    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();
0 голосов
/ 05 июня 2012

С файлами Excel 2007, используя Excel :: Writer :: XSLX , вы не можете этого сделать. По состоянию на июнь 2012 года выпуска 0.47:

Этот модуль пока нельзя использовать для записи в существующий Excel Файл XLSX.

Вы можете создавать только новые файлы.

...