
Creo que ya está claro en la captura de pantalla de qué se trata. Pero, para no duplicar el texto, que ya se describe en la
documentación , solo contaré sobre puntos importantes.
El hecho es que la biblioteca php para trabajar con documentos de Excel apareció hace mucho tiempo, pero el motor de plantillas aún no se ha inventado para ello (al menos no he encontrado nada más sensato). Y todos necesitamos una biblioteca de este tipo para Excel, en la que insertamos variables de plantilla en una plantilla, les pasamos parámetros y las enviamos a un render. Todo esto se hace con un comando:
use alhimik1986\PhpExcelTemplator\PhpExcelTemplator; PhpExcelTemplator::saveToFile('./template.xlsx', './exported_file.xlsx', [ '{current_date}' => date('dm-Y'), '{department}' => 'Sales department', ]);
Además, tenemos la siguiente lista de deseos:
- queremos aplicar varias variables de plantilla en una celda
- y también queremos pasar una matriz, y en Excel para esto se crearon las líneas correspondientes en la celda
- pero ¿qué pasa con una matriz bidimensional para que no solo se creen filas sino también columnas?
- y también necesitamos aplicar estilos para cada celda insertada, por ejemplo, para resaltar grandes cantidades en verde o para resaltar empleados que se han distinguido en negrita
Dirás que ya intenté hacer esto: cuando se crean filas, las columnas a la derecha de esta celda se duplicarán. No, esto no sucederá, porque en realidad no se crean las líneas, sino que se agregan "celdas con desplazamiento hacia abajo". Por cierto, en la hoja de cálculo PHP en este momento no existe tal función, solo puede insertar líneas.
¿Son posibles los efectos secundarios cuando se utiliza una gran cantidad de matrices unidimensionales y bidimensionales? Si lo son. Especialmente cuando se utilizan varias matrices bidimensionales en la misma fila y en varias líneas seguidas. El hecho es que las celdas (ubicadas a la derecha) que no contienen variables de plantilla, no se mueven. Como resultado, pueden superponerse mediante celdas con una matriz bidimensional. La forma de salir de la situación es crear variables de plantilla con datos vacíos y colocar estas variables junto a las celdas para las que necesita sangrar. Un ejemplo de efectos secundarios está disponible en la carpeta "samples".
Suena complicado, pero si se crearan líneas, habría muchos más efectos secundarios. Es decir, las posibilidades de efectos secundarios son relativamente bajas.
Los planes: crear un ejemplo que muestre cómo lidiar con los efectos secundarios; la capacidad de aplicar estilos sin usar setters (para exportar menos clases y reducir la cantidad de código utilizado). ¿Por qué no lo he hecho ahora? Necesito apoyo, es decir, necesito saber que alguien necesita esto. Y de repente resulta que inventé una bicicleta y todo lo que hice fue completar el juego. Por lo tanto, espero sus comentarios.
Enlace al proyecto