使用PHPExcel填写Excel表格
我正试图用通过我所做的方法过滤的数据填充我的Excel表格。现在我得到了一张表,但我只有一行,没有另一行,没有得到我通过我的对象提供的数据 我正在尝试我的工作表类似于这张工作表。 我试图在这部分代码中编写代码:使用PHPExcel填写Excel表格,php,for-loop,phpexcel,Php,For Loop,Phpexcel,我正试图用通过我所做的方法过滤的数据填充我的Excel表格。现在我得到了一张表,但我只有一行,没有另一行,没有得到我通过我的对象提供的数据 我正在尝试我的工作表类似于这张工作表。 我试图在这部分代码中编写代码: public function export($Sets,$disp_filter) { $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setTitle("Offic excel Test Do
public function export($Sets,$disp_filter)
{
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setTitle("Offic excel Test Document");
$styleArray = array(
'font' => array(
'bold' => true,
'color' => array('rgb' => 'FF0000'),
'size' => 10,
'name' => 'Verdana'
));
$objPHPExcel->getActiveSheet()->getStyle('A1')->applyFromArray($styleArray);
$excel_out = array($this->outputSampleName($Sets));
// var_dump($excel_out);
// exit;
$objPHPExcel->getActiveSheet()->SetCellValue('A1', 'Sample Size and Margin of Error');
$rowCount = 2;
foreach ($excel_out as $key=> $line)
{
$colCount = 'A';
$i=0;
// $line = array($Set['name']);
// $CT = $Set['crossTabs']['base'];
// $Moe = array($CT['sample']['moe']);
foreach($line as $col_value)
{
// var_dump($col_value);
// exit;
$objPHPExcel->getActiveSheet()->setCellValue($colCount.$rowCount, $col_value[$i])
->getStyle($colCount.$rowCount)->applyFromArray($styleArray);
$colCount++;
}
$rowCount++;
$i++;
}
return $objPHPExcel;
}
protected function outputSampleName($Sets)
{
foreach ($Sets as $Set)
{
$CT = $Set['crossTabs']['base'];
$line = array(
$Set['name'],
$CT['sample']['moe'] . '%'
);
$excel_out []= $line;
}
return $excel_out;
}
当我通过var\u dump($excel\u out)查看时
我有这样的数据结构:
**请建议我如何以优化的方式获得下一行中的百分比值。
目前,我只能循环浏览该阵列中的样本[name],它们是(狂热者、猎人、新射手等)**
提前感谢您的变量名和程序结构令人困惑。在function
outputSampleName
中,$line
对我来说不是一行,而是一个包含两行的列。函数export
中的$excel\u out
主要包含一个包含一个元素的数组。因此,您的第一个foreach将只循环一次。在那里,$行
是由5列数据组成的数组(5)。在第二个foreach中,5个$col\u值中的每一个都包含一个数组(2),其中包含数据[0]=>文本和[1]=>百分比。但是您只会得到[0]=>文本,因为第一个foreach只会循环一次。谢谢您的建议,但是有没有办法在一对循环中循环使用这两个值。。。我的意思是,在这里,我一次只填一行。如何用百分比值填充第二行。第一步不是将$this->outputSampleName($Sets)
的结果再次包装到数组中,而是将其原样接受。然后再试一次,试着理解foreach是如何工作的。哦,是的,你是对的。我不能在评论中发布照片,请看下面的帖子。