我有一组数据数组。
所以基本格式是
$sheet = array(
array(
'a1 data',
'b1 data',
'c1 data',
'd1 data',
),
array(
'a2 data',
'b2 data',
'c2 data',
'd2 data',
),
array(
'a3 data',
'b3 data',
'c3 data',
'd3 data',
)
);
当我传递数组时,我不知道会有多少列或行。 我想要做的是使用php excel从数组中创建一个excel表。
从我所看到的,设置数据的唯一方法就是使用
$objPHPExcel->getActiveSheet()->setCellValue('A1', $value);
所以我的问题是
你如何循环细胞?
记住可能会说30列并说70行AD70
那么,你如何循环呢?
或者是否有内置函数将数组转换为工作表?
答案 0 :(得分:28)
您可以从数组中设置数据:
$objPHPExcel->getActiveSheet()->fromArray($sheet, null, 'A1');
fromArray适用于2D数组。第一个参数是2D数组,第二个参数是如果有空值则使用的内容,最后一个参数是左上角的位置。
否则你需要遍历数据:
$worksheet = $objPHPExcel->getActiveSheet();
foreach($sheet as $row => $columns) {
foreach($columns as $column => $data) {
$worksheet->setCellValueByColumnAndRow($column, $row + 1, $data);
}
}
答案 1 :(得分:22)
$rowID = 1;
foreach($sheet as $rowArray) {
$columnID = 'A';
foreach($rowArray as $columnValue) {
$objPHPExcel->getActiveSheet()->setCellValue($columnID.$rowID, $columnValue);
$columnID++;
}
$rowID++;
}
或
$objPHPExcel->getActiveSheet()->fromArray($sheet);
答案 2 :(得分:0)
据我所知,在使用PHP excel填充工作表时,您不需要知道最终Excel工作表的高度和宽度。您可以使用嵌套的foreach循环来读取所有嵌套数组,并使用适当的变量来构建单元格引用并将它们添加到工作表中。插件将处理大小。