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