Да, каждый шаблон - своя функция на вашем любимом и удобном языке программирования, делайте все как можно более просто, без нагромождений абстракций.
Напомню, что исторически php - это язык для написания шаблонов html документов ;) возьмите это за основу. Еще напомню, что уже давным давно файлы эксель (да и open document на то пошло, лучше его реализовывать) - это zip архив с xml и xls файлами, описывающими итоговый документ, они текстовые, имеют строгий формат и легки для генерации и обработки.
Сколько видел шаблонизаторов, все они в конце концов вырождаются в целый фреймворк со своим языком, правилами, тараканами и глюками... не идите этим путем если вам нужно всего то несколько документов а не городить сложнейший erp с десятилетней поддержкой и сотнями техпроцессов в десятке подразделений.