import XLSX from 'xlsx' import { buildWorkbookSheets } from './signalTableBuilder' import { saveBlob } from './filePicker' export function createSignalTableWorkbook(data) { const workbook = XLSX.utils.book_new() buildWorkbookSheets(data).forEach(sheet => { const worksheet = XLSX.utils.aoa_to_sheet(sheet.rows) worksheet['!cols'] = (sheet.cols || []).map(wch => ({ wch })) XLSX.utils.book_append_sheet(workbook, worksheet, sheet.name) }) return workbook } export async function exportSignalTable(data, filename = 'SignalTable.xlsx') { const workbook = createSignalTableWorkbook(data) const content = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }) const blob = new Blob([content], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }) return saveBlob(blob, filename, [ { description: 'Excel 工作簿', accept: { 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': ['.xlsx'] } } ]) }