2017-02-21 129 views
0

是否可以在此表中添加新行?PHPExcel在不覆盖现有信息的情况下添加新行

enter image description here

...没有影响或覆盖在文档底部的信息?

我知道可以手动创建底部信息,但我必须每月上传一次这个Excel(使用不同的标题)并设置开始行。

我已经试过了做这个副本的最后一个行,但duplicateStyle不会复制边框和背景

# library 
     $this->load->library('excel'); 
     $path = './assets/files/uploads/form.xls';  

     $excel = PHPExcel_IOFactory::load($path); 
     $excel->setActiveSheetIndex(1); 
     $row = 10; 
     $total = 25; 

     if($total >= 20) 
     {   
      $cellValues = $excel->getActiveSheet()->rangeToArray('A30:L32'); 
      $excel->getActiveSheet()->fromArray($cellValues, null, 'A33'); 
      $excel->getActiveSheet()->duplicateStyle($excel->getActiveSheet()->getStyle('A30:L30'), 'A32:L32'); 
     } 

回答

1

有一个叫insertNewRowBefore()工作表的方法(和名为insertNewColumnBefore()列相应的方法) 。

$excel->getActiveSheet()->insertNewRowBefore(10, 5); 

将插入5点新的行到活动工作表,行10之前...有效时,它推动排10向下到行15,行11向下到行16,行12向下到行17,等;相应地调整公式和其他单元格引用。

同样

$excel->getActiveSheet()->insertNewColumnBefore('B'); 

将插入一个单一的新列B塔之前(默认为既insertNewRowBefore()insertNewColumnBefore()是单行或单列)。

examples folder05featuredemo.php30template.php演示了如何使用这些方法


而且

$excel->getActiveSheet()->duplicateStyle(
    $excel->getActiveSheet()->getStyle('A30'), 
    'A31:A100' 
); 

应该复制从所有风格元素(包括边框和背景)细胞到细胞的范围;但它不会将一系列单元格中的不同样式复制到新的单元格区域。

相关问题