jsonToExcel 生成excel文件下载

function ToExcel(JSONData, FileName, ShowLabel) {
// 先转化json
var arrData = JSONData

var excel = '<table>'

// 设置表头
var row = '<tr>'
for (var i = 0, l = ShowLabel.length; i < l; i++) {
    if (typeof ShowLabel[i] === 'object') {
        row += `<th ${ShowLabel[i].width ? `width=${ShowLabel[i].width}` : ''}>` + ShowLabel[i].value + '</th>'
    } else {
        row += '<th>' + ShowLabel[i] + '</th>'
    }
    
}
// 换行
excel += row + '</tr>'

// 设置数据
for (var i = 0; i < arrData.length; i++) {
    var row = '<tr>'
    let labelIndex = 0
    for (var index in arrData[i]) {
        var value = arrData[i][index] === '.' ? '' : arrData[i][index]
        if (typeof value === 'object') {
            row += `<td style="text-align:center;background-color:${value.backgroundColor};color:${value.color}" ${value.rowspan ? `rowspan=${value.rowspan}` : ''} ${value.colspan ? `colspan=${value.colspan}` : ''} ${value.width ? `width=${value.width}` : ''} >` + value.value + '</td>'
        } else {
            row += `<td style="text-align:center">` + value + '</td>'
        }
        labelIndex++
    }
    excel += row + '</tr>'
}

excel += '</table>'

var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>"
excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">'
excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel'
excelFile += '; charset=UTF-8">'
excelFile += '<head>'
excelFile += '<!--[if gte mso 9]>'
excelFile += '<xml>'
excelFile += '<x:ExcelWorkbook>'
excelFile += '<x:ExcelWorksheets>'
excelFile += '<x:ExcelWorksheet>'
excelFile += '<x:Name>'
excelFile += '{worksheet}'
excelFile += '</x:Name>'
excelFile += '<x:WorksheetOptions>'
excelFile += '<x:DisplayGridlines/>'
excelFile += '</x:WorksheetOptions>'
excelFile += '</x:ExcelWorksheet>'
excelFile += '</x:ExcelWorksheets>'
excelFile += '</x:ExcelWorkbook>'
excelFile += '</xml>'
excelFile += '<![endif]-->'
excelFile += '</head>'
excelFile += '<body>'
excelFile += excel
excelFile += '</body>'
excelFile += '</html>'

var uri = 'data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(excelFile)

var link = document.createElement('a')
link.href = uri

link.style = 'visibility:hidden'
link.download = FileName + '.xls'

document.body.appendChild(link)
link.click()
document.body.removeChild(link)

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值