tableToExcelWithMerge(rows) {
const This = this;
let jsonData = This.formatExcelData(rows);
console.log("dwadwa",jsonData)
// 创建工作簿
const wb = XLSX.utils.book_new();
// 转换数据为工作表
const ws = XLSX.utils.aoa_to_sheet(jsonData);
// 设置单元格合并
ws['!merges'] = [{ s: { r: jsonData.length - 1, c: 1 }, e: { r: jsonData.length - 1, c: jsonData[0].length - 2 }}];
// 添加样式
/*
遍历ws['!rows']或ws['!cols']来设置列宽、行高,以及ws['A1']等单元格来设置字体颜色等
注意:具体的样式设置较为复杂,需参考库文档
*/
ws['!cols'] = [
{ wch: 20 }, // 第一列宽度
{ wch: 30 }, // 第二列宽度
{ wch: 50 }, // 第三列宽度
{ wch: 50 }, // 第四列宽度
{ wch: 15 }, // 第四列宽度
];
// 添加工作表到工作簿
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
// 导出Excel文件
const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });
function s2ab(s) {
const buf = new ArrayBuffer(s.length);
const view = new Uint8Array(buf);
for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
}
FileSaver.saveAs(new Blob([s2ab(wbout)], { type: '' }), '接入单位对账.xlsx');
}