Эта тема немного старая, но у меня возникла та же проблема, когда мне нужно было изменить файлы Excel с помощью макросов из PHP. Ни одна PHP библиотека, которую я знаю, не поддерживает редактирование файлов Excel без негативного влияния на макросы.
Однако библиотека LibXL поддерживает сохранение макросов начиная с версии 3.3.1. Он не написан на PHP, но в итоге мы написали редактирование Excel на C ++, и мы вызвали эту программу на C ++ из PHP через метод exec (). Он работал очень хорошо и имел очень хорошие показатели. Надеюсь, это кому-нибудь поможет.