
Eu acho que já está claro na captura de tela do que se trata. Mas, para não duplicar o texto, que já está descrito na
documentação , falarei apenas de pontos importantes.
O fato é que a biblioteca php para trabalhar com documentos do Excel apareceu há muito tempo, mas o mecanismo de modelo ainda não foi inventado para isso (pelo menos não achei nada mais sensato). E todos nós precisamos dessa biblioteca para o Excel, na qual inserimos variáveis de modelo em um modelo, passamos parâmetros para elas e a enviamos para uma renderização. Tudo isso é feito com um comando:
use alhimik1986\PhpExcelTemplator\PhpExcelTemplator; PhpExcelTemplator::saveToFile('./template.xlsx', './exported_file.xlsx', [ '{current_date}' => date('dm-Y'), '{department}' => 'Sales department', ]);
Além disso, temos a seguinte lista de desejos:
- queremos aplicar várias variáveis de modelo em uma célula
- e também queremos passar uma matriz e, no Excel, as linhas correspondentes foram criadas na célula
- mas e uma matriz bidimensional para que não apenas as linhas, mas também as colunas sejam criadas
- e também precisamos aplicar estilos para cada célula inserida, por exemplo, para destacar grandes quantidades em verde ou para destacar os funcionários que se destacaram em negrito
Você dirá que eu já tentei fazer isso: quando as linhas são criadas, as colunas à direita desta célula serão duplicadas. Não, isso não acontecerá, porque, na realidade, não são as linhas criadas, mas as "células com uma mudança para baixo" são adicionadas. A propósito, na planilha PHP no momento não existe essa função, ela pode apenas inserir linhas.
Os efeitos colaterais são possíveis ao usar um grande número de matrizes unidimensionais e bidimensionais? Sim eles são. Especialmente quando várias matrizes bidimensionais são usadas na mesma linha e em várias linhas seguidas. O fato é que as células (localizadas à direita) que não contêm variáveis de modelo, elas não se movem. Como resultado, eles podem ser sobrepostos por células com uma matriz bidimensional. A saída da situação é criar variáveis de modelo com dados vazios e colocar essas variáveis ao lado das células para as quais você precisa recuar. Um exemplo de efeitos colaterais está disponível na pasta "samples".
Parece complicado, mas se as linhas fossem criadas, haveria muito mais efeitos colaterais. Ou seja, as chances de efeitos colaterais são relativamente baixas.
Os planos: crie um exemplo que mostre como lidar com efeitos colaterais; a capacidade de aplicar estilos sem usar setters (para exportar menos classes e reduzir a quantidade de código usada). Por que eu não fiz isso agora? Preciso de apoio, ou seja, preciso saber que alguém precisa disso. E, de repente, descobri que eu inventei uma bicicleta e tudo que fiz foi jogo completo. Portanto, estou aguardando o seu feedback.
Link para o projeto