PHP excel - 数据循环?

Hai*_*ood 18 php arrays phpexcel

我有一组数据数组.

所以基本格式是

$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',
  )
);
Run Code Online (Sandbox Code Playgroud)

当我通过数组时,我不知道会有多少列或行.我想要做的是使用php excel从数组中创建一个excel表.

从我所看到的,设置数据的唯一方法是使用 $objPHPExcel->getActiveSheet()->setCellValue('A1', $value);

所以我的问题是

你会如何在细胞上循环?

记住可能会说30列并说70行就是AD70这样,你怎么循环呢?

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

Jac*_*cob 29

您可以像这样设置数组中的数据:

$objPHPExcel->getActiveSheet()->fromArray($sheet, null, 'A1');
Run Code Online (Sandbox Code Playgroud)

fromArray使用2D数组.第一个参数是2D数组,第二个参数是如果有空值则使用的内容,最后一个参数是左上角应该是的位置.

否则你需要遍历数据:

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


Mar*_*ker 22

$rowID = 1;
foreach($sheet as $rowArray) {
   $columnID = 'A';
   foreach($rowArray as $columnValue) {
      $objPHPExcel->getActiveSheet()->setCellValue($columnID.$rowID, $columnValue);
      $columnID++;
   }
   $rowID++;
}
Run Code Online (Sandbox Code Playgroud)

要么

$objPHPExcel->getActiveSheet()->fromArray($sheet);
Run Code Online (Sandbox Code Playgroud)

  • 无法真正与PHPExcel开发人员竞争:D (3认同)
  • @Jacob - 在使用PHPExcel时,字符递增绝对有用......我经常使用这个技巧. (3认同)