PHP excel - 数据循环?

2022-08-30 21:40:04

我有一个数据数组数组。

所以基本格式是

$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

或者是否有内置函数可以将数组转换为工作表?


答案 1

您可以从数组中设置数据,如下所示:

$objPHPExcel->getActiveSheet()->fromArray($sheet, null, 'A1');

fromArray 适用于 2D 数组。其中第一个参数是 2D 数组,第二个参数是如果存在 null 值时要使用的参数,最后一个参数是左上角的位置。

否则,您需要遍历数据:

$worksheet = $objPHPExcel->getActiveSheet();
foreach($sheet as $row => $columns) {
    foreach($columns as $column => $data) {
        $worksheet->setCellValueByColumnAndRow($column, $row + 1, $data);
    }
}

答案 2
$rowID = 1;
foreach($sheet as $rowArray) {
   $columnID = 'A';
   foreach($rowArray as $columnValue) {
      $objPHPExcel->getActiveSheet()->setCellValue($columnID.$rowID, $columnValue);
      $columnID++;
   }
   $rowID++;
}

$objPHPExcel->getActiveSheet()->fromArray($sheet);