PhpExcel:如何模拟excel拖动单元格内容

时间:2012-02-08 10:11:24

标签: php phpexcel

我正在编写一个PHP脚本,通过使用PHP excel生成excel报告。我想做的是允许用户指定可以“拖动”单元格的含量。我的意思是利用或模拟excel的这个特征,它允许用户选择一个或多个单元格并拖动它们的内容以生成相邻单元格的内容。我无法找到任何相关信息。我是否需要在我的脚本中生成单元格的内容,或者是否有一些PHP excel的偷偷摸摸的功能可以为我做这个?我会假设前者,但我对PHPExcel很新,所以想在潜水之前确定。

1 个答案:

答案 0 :(得分:4)

PHPExcel没有“偷偷摸摸”的功能,您必须为每个单元格设置内容,但有一些方法可以帮助在一次调用中设置多个单元格值。

如果您正在谈论直接数据内容,您可以指定一个起始单元格并将一组值传递给Worksheet的fromArray()方法:

* Fill worksheet from values in array
*
* @param  array   $source                 Source array
* @param  mixed   $nullValue              Value in source array that stands for blank
*                                             cell
* @param  string  $startCell              Insert array starting from this cell
*                                             address as the top left coordinate
* @param  boolean $strictNullComparison   Apply strict comparison when testing for null
*                                             values in the array
* @throws Exception
* @return PHPExcel_Worksheet
public function fromArray( $source = null, 
                           $nullValue = null, 
                           $startCell = 'A1', 
                           $strictNullComparison = false
                         )

如果您需要在一系列单元格中操纵公式,例如= $ A1 + $ B1 + $ C $ 1为一组行,以便$ A1和$ B1成为$ A2和$ B2为第二行,$ A3和$ B3为第三行等,然后ReferenceHelper的updateFormulaReferences()方法可能很有用:

* Update references within formulas
*
* @param   string  $pFormula    Formula to update
* @param   int     $pBefore     Insert before this one
* @param   int     $pNumCols    Number of columns to insert
* @param   int     $pNumRows    Number of rows to insert
* @return  string  Updated formula
* @throws  Exception
public function updateFormulaReferences( $pFormula = '', 
                                         $pBefore = 'A1', 
                                         $pNumCols = 0, 
                                         $pNumRows = 0, 
                                         $sheetName = ''
                                       )