I can use .xls files perfect, but not .xlsx.
Arquivos XLS e arquivos XLSX são dois formatos diferentes.
O Excel não pode abrir arquivos XLS com uma extensão incorreta .xlsx
e não pode abrir um arquivo XLSX com a extensão incorreta .xls
.
O XLS é um formato binário proprietário, enquanto o XLSX é um formato aberto baseado em arquivos XML armazenados em um arquivo ZIP (assim como o LibreOffice).
Se o Excel abrir o arquivo XLS, o arquivo será codificado em XLS. Portanto, se a especificação do cliente for XLSX, você deverá alterar seu código.
Como seu código está em PHP, é claro que eu sugiro TBS + OpenTBS . Trabalha com a técnica de templates.