PHP Excel - цикл данных? - PullRequest
       5

PHP Excel - цикл данных?

18 голосов
/ 05 апреля 2011

У меня есть массив массивов данных.

, поэтому базовый формат

$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 Итак, как вы зацикливаетесь?*

Или есть встроенная функция для превращения массива в лист?

Ответы [ 3 ]

28 голосов
/ 05 апреля 2011

Вы можете установить данные из массива следующим образом:

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

из Array работает с 2D-массивами. Если первый аргумент - это двумерный массив, второй аргумент - это то, что следует использовать, если есть нулевое значение, а последний аргумент - это то, где должен быть верхний левый угол.

В противном случае вам понадобится перебрать данные:

$worksheet = $objPHPExcel->getActiveSheet();
foreach($sheet as $row => $columns) {
    foreach($columns as $column => $data) {
        $worksheet->setCellValueByColumnAndRow($column, $row + 1, $data);
    }
}
22 голосов
/ 05 апреля 2011
$rowID = 1;
foreach($sheet as $rowArray) {
   $columnID = 'A';
   foreach($rowArray as $columnValue) {
      $objPHPExcel->getActiveSheet()->setCellValue($columnID.$rowID, $columnValue);
      $columnID++;
   }
   $rowID++;
}

или

$objPHPExcel->getActiveSheet()->fromArray($sheet);
0 голосов
/ 05 апреля 2011

Насколько я знаю, вам не нужно знать высоту и ширину окончательного рабочего листа Excel при заполнении рабочего листа с помощью PHP Excel.Вы можете просто использовать вложенный цикл foreach, чтобы прочитать все вложенные массивы и использовать соответствующие переменные для создания ссылок на ячейки и добавления их на лист.Плагин будет обрабатывать размер.

...