У меня написана своя exporterFactory, которая принимает qbProvider и Writer.
qbProvider возвращает iterate(), по которому проходится foreach и генератором отдает данные. На каждую 1000 итераций em->clear(). Writer банально все пишет через Spout. Возможно, это не самый оптимальный вариант, но файлы до 350 мб он генерирует без проблем.
ps Если же требуются большие файлы, то может имеет смысл выяснить зачем? Один раз заказчик просил добавить столько данных, что нужно было генерировать гигабайтные файлы. Выяснилось, что он потом просто считал в экселе строчки для отчета. Проблема решилась простым предоставлением уже готовых посчитанных данных.