Код:
declare const console: any
declare const XLSX: any
async function exportToXlsx(): Promise<void> {
const dataForXlsx: any[] = [
['Название Клиента', 'Проект', 'Q1', '', 'Q2', '', 'Q3', '', 'Q4', '', '2023'],
['', '', 'План', 'Факт', 'План', 'Факт', 'План', 'Факт', 'План', 'Факт', 'План', 'Факт'],
]
const worksheet = XLSX.utils.aoa_to_sheet(dataForXlsx, { cellDates: true })
// Задаем ширину столбцов
worksheet['!cols'] = [
{ wpx: 250 },
{ wpx: 250 },
{ wpx: 100 },
{ wpx: 100 },
{ wpx: 100 },
{ wpx: 100 },
{ wpx: 100 },
{ wpx: 100 },
{ wpx: 100 },
{ wpx: 100 },
{ wpx: 100 },
{ wpx: 100 },
]
// Обьедeняем ячейки как надо
const cellMerges = [
{ s: { r: 0, c: 2 }, e: { r: 0, c: 3 } },
{ s: { r: 0, c: 4 }, e: { r: 0, c: 5 } },
{ s: { r: 0, c: 6 }, e: { r: 0, c: 7 } },
{ s: { r: 0, c: 8 }, e: { r: 0, c: 9 } },
{ s: { r: 0, c: 10 }, e: { r: 0, c: 11 } },
]
worksheet["!merges"] = cellMerges
const workbook = XLSX.utils.book_new()
XLSX.utils.book_append_sheet(workbook, worksheet, 'Page 1')
XLSX.writeFile(workbook, 'styled excel.xlsx')
}