У меня есть массив массивов данных.
поэтому основной формат
$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
Итак, как вы это делаете?
Или есть встроенная функция, чтобы превратить массив в лист?
Вы можете установить данные из массива следующим образом:
$objPHPExcel->getActiveSheet()->fromArray($sheet, null, 'A1');
fromArray работает с 2D-массивами. Где 1-й аргумент – это 2D-массив, второй аргумент – это то, что следует использовать, если есть нулевое значение, а последний аргумент – в верхнем левом углу.
В противном случае вам нужно будет пропустить данные:
$worksheet = $objPHPExcel->getActiveSheet(); foreach($sheet as $row => $columns) { foreach($columns as $column => $data) { $worksheet->setCellValueByColumnAndRow($column, $row + 1, $data); } }
$rowID = 1; foreach($sheet as $rowArray) { $columnID = 'A'; foreach($rowArray as $columnValue) { $objPHPExcel->getActiveSheet()->setCellValue($columnID.$rowID, $columnValue); $columnID++; } $rowID++; }
или
$objPHPExcel->getActiveSheet()->fromArray($sheet);
Насколько мне известно, вам не нужно знать высоту и ширину окончательного листа Excel при заполнении листа с использованием PHP excel. Вы можете просто использовать вложенный цикл foreach для чтения всех вложенных массивов и использовать соответствующие переменные для создания ссылок на ячейки и добавления их на рабочий лист. Плагин будет обрабатывать размер.