machine learning iris datasets databases data php arrays phpexcel

php - datasets - uci machine learning repository iris



PHP excel-bucle de datos? (3)

Por lo que sé, no es necesario saber la altura y el ancho de la hoja de cálculo de Excel final al rellenar una hoja de trabajo con PHP Excel. Solo puede usar un bucle foreach anidado para leer todas las matrices anidadas y usar las variables apropiadas para construir las referencias de celda y agregarlas a la hoja de trabajo. El plugin se encargará del tamaño.

Tengo una serie de matrices de datos.

entonces el formato básico es

$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'', ) );

Cuando pase la matriz, no tengo idea de cuántas columnas o filas habrá. Lo que quiero hacer es usar PHP Excel para crear una hoja de Excel fuera de la matriz.

por lo que he visto, la única manera de establecer datos es usar $objPHPExcel->getActiveSheet()->setCellValue(''A1'', $value);

Así que mi pregunta es

¿Cómo pasarías por las celdas?

recordando que podría haber, por ejemplo, 30 columnas y 70 filas, lo que sería AD70 Entonces, ¿cómo se puede hacer eso?

¿O hay una función incorporada para convertir una matriz en una hoja?


Puede configurar los datos de una matriz de esta manera:

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

fromArray trabaja con matrices 2D. Donde el primer argumento es la matriz 2D, el segundo argumento es qué usar si hay un valor nulo, y el último argumento es donde debería estar la esquina superior izquierda.

De lo contrario, necesitarías recorrer los datos:

$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++; }

o

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