// 输出base64编码
const base64 = s => window.btoa(unescape(encodeURIComponent(s)));
const tableToExcel = async (jsonData) => {
return new Promise(resolve => {
try {
let str = '
'
Object.keys(jsonData[0]).forEach(name => {
const tdStr = `| ${name} | `
str += tdStr
})
str += '
'
for (let i = 0; i < jsonData.length; i++) {
str += '';
for (const key in jsonData[i]) {
// 增加\t为了不让表格显示科学计数法或者其他格式
str += `| ${jsonData[i][key] + '\t'} | `;
}
str += '
';
}
const currentTime = new Date()
const fileSuffix = currentTime.valueOf()
// Worksheet名
const worksheet = '用户质量分' + fileSuffix
const uri = 'data:application/vnd.ms-excel;base64,';
// 下载的表格模板数据
const template = `
`;
// 下载模板
window.location.href = uri + base64(template);
resolve(true)
}
catch (r) {
console.log(r, 'html excel')
resolve(false)
}
})
};
export const exportExcelFunc = async (tableData) => {
return new Promise(async (resolve) => {
try {
await tableToExcel(tableData)
resolve(true)
}
catch (r) {
console.log(r, 'exportExcelFunc')
resolve(false)
}
})
}