1. Обеспечивается ли поддержка подтаблиц (subgrid)?
Каких-то особых функций для этого нет, но несложно сделать самостоятельно.
Простой subgrid делается через custom-операцию, которая возвращает json в нужном формате.
Для grid as subgrid добавляем операцию, которая вернет результат ->render для класса subgrid'а с нужными параметрами.
Оборачиваем его в теги <script> и вставляем на страницу, как в примерах на trirand.com.
2. Если да, то, по-моему, модуль ExcelHtml.php необходимо модифицировать.
Да, в excel по умолчанию будут экспортироваться только голые данные из getDataRows(). Для более сложного поведения следует писать код.
На мой взгляд, это нормально, т.к. в принципе нельзя сделать вариант экспорта, который удовлетворит всех. У меня даже в рамках одного проекта к каждому гриду разные требования.
3. Можно ли обойтись без обрамления табличных данных в HTML разметку с целью преобразования в .xls формат?
Все остальные способы намного сложнее. Например, известная библиотека PHPExcel требует тонкой настройки форматирования колонок, медленно работает, жрет тонны памяти и падает на больших data set'ах.
Или COM-объекты. Требуют сервер с виндой и, опять же, тонкого форматирования.
А вот HTML наоборот очень прост и понятен, а также Excel берет на себя целую кучу работы. Например, сам подстраивает ширину колонок под контент.
Передавать JSON - плохая идея. Как правило в таблицах используется постраничная навигация, и передаваться будет только текущая страница. Практически во всех случаях, которые встречались мне, заказчик хочет экспорт всех страниц сразу.
И тут весь вопрос в объемах. Если документ получается на 100 Мб, то при использовании JSON все повиснет. А напрямую с сервера отдастся без проблем.
p.s. Кстати, мне кажется, в строке 78 указанного файла вместо $t .= '</table></body></html>'; необходимо $t .= '</table>'; поскольку в последующем вызове функции output() эти теги будут добавлены.
Ага, спасибо, fixed. Видимо никаких проблем у excel'а это не вызывало, потому никто не жаловался.