💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
``` const data = [{ name: "我的", value: 123 }, { name: "你的", value: 123 }, { name: "他的", value: 123 }]; // 将指定的自然数转换为26进制表示。映射关系:[0-25] -> [A-Z]。 function getCharCol(num) { var result = []; while (num) { var t = num % 26; if (!t) { t = 26; --num; } result.push(String.fromCodePoint(t + 64)); num = ~~(num / 26); } return result.reverse().join(''); } const getSheet = (data = [], arrKey = [], title = []) => { let sheet = { '!ref': `A1:${getCharCol(arrKey.length + 1)}${data.length}`, }; let titleName = {}; arrKey.forEach((x, i) => { titleName[x] = title[i]; }) data.unshift(titleName); arrKey.forEach((name, index) => { data.forEach((item, i) => { sheet[`${getCharCol(index + 1)}${i + 1}`] = { v: item[name], t: "s" } }) }); return sheet } // console.log(getSheet(data, ['name', 'value'], ['姓名', '年龄'])); const workbook = { SheetNames: ['Sheet1', 'Sheet2'], Sheets: { Sheet1: { '!ref': 'A1:C2', A1: { v: '标题1', t: 's' }, B1: { v: '标题2', t: 's' }, A2: { v: '第2行第1列', t: 's' }, B2: { v: '第2行第2列', t: 's' }, '!cols': [{ wpx: 150 }, { wpx: 200 }], }, Sheet2: getSheet(data, ['name', 'value'], ['姓名', '年龄']) } }; const workbookOut = XLSX.write(workbook, { bookType: 'xlsx', bookSST: false, type: 'binary' }); FileSaver.saveAs(new Blob([s2ab(workbookOut)], { type: 'application/octet-stream' }), 'export.xlsx') ```