Для подстановки данных из базы данных в Odt файл воспользуемся библиотекой OdtPHP.
Импорт данных из бызы данных в формат OpenOffice - хорошая идея) Каждый может бесплатно скачать и установить этот офисный пакет у себя на компьютере.
Код для Odt файла
Создаем Odt файл и добавляем туда коды, которые будем замещать нужными данными. Например, для подстановки ФИО, добавим в Odt файл код {fio}

На скриншоте в Odt файле определены 2 тэга {titre} и {message}
Код для php файла
Добавим билиотеку :
require_once('../library/odf.php');
и теперь, вот таким вот образом делаем замену:
$odf = new odf("tutoriel7.odt");
$odf->setVars('fio', 'Петров И.В.', true, 'utf-8');
// We export the file
$odf->exportAsAttachedFile();
Если у нас есть набор записей из базы данных, то нам нужно продублировать существующий odt-шаблон, для каждой записи.
Для этого в odt-шаблон добавляем тэги в начало
[!-- BEGIN articles --]
и в конец
[!-- END articles --]

И код в php-файле будет выглядеть теперь так:
$odf = new odf($filename);
$kvit = $odf->setSegment('articles');
foreach ($items as $item){
$kvit->setVars('fio', $item->fio, true, 'utf-8');
$kvit->merge();
}
$odf->mergeSegment($kvit);
$odf->exportAsAttachedFile();
$items это набор записей из таблицы базы данных.
Каким образом можно получить набор данных из базы >> Работа с базой данных в Joomla 2.5 - общий обзор