Создаёшь обычную таблицу. Заполняешь её данными, далее делаешь clickHandler на кнопочку, которая выглядит как ворд. В clickHandler ты делаешь запрос на backEnd, который отдаёт тебе файл на загрузку, или же создаёшь таблицу из тех данных, что уже на странице. Банальным перебором данных по строкам и колонкам создаёшь xls (Простой xml подобный синтаксис с таблицами, как в html) тект. Организуешь Blob данные из него, делаешь uri-data ссылку, пихаешь её в виртуальный element «a» с аттрибутом download, в котором пишешь название файла и емитируешь клик по этому элементу и после клика с сзадержкой в 100 мс освобождаешь blob