用js提取内容到excel

90 阅读1分钟

在大学里的比赛中遇到了需要整理的数据到excel发给快递员,以下是这次方法的实现方式

let jbnewarr1 = document.querySelectorAll("[id^='order_item']")   //获取每一行的数据
let namearr = []
let dzarr = []
let telarr = []
let final = []
let itemlist = {}
for (let i = 0; i < jbnewarr1.length; i++) {
    let name = jbnewarr1[i].querySelector("td:nth-child(5)").innerHTML
    let dz = jbnewarr1[i].querySelector("td:nth-child(6)").innerHTML
    let tel = jbnewarr1[i].querySelector("td:nth-child(7)").innerHTML
   
    itemlist = {
        nameitem: name,
        dzitem: dz,
        telitem: tel
    }
    final.push(itemlist)
}
console.log(final);
把这个自己写的代码写到浏览器下面,最后得到一个数组里面存放每一个对象的list



image.png 再把浏览器下面的数组list复制到html文件中


<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.0/xlsx.full.min.js"></script>
</head>
 
<body>
    <script>
        // 数据
 
 
        var data = [
            { nameitem: " ", dzitem: " 四川省成都市成华区 ", telitem: " " }
            , { nameitem: " ", dzitem: " 四川省成都市成华区", telitem: "  " }
 
 
        ];
 
        // 创建工作簿
        var wb = XLSX.utils.book_new();
 
        // 将数据转换为工作表
        var ws = XLSX.utils.json_to_sheet(data);
 
        // 将工作表添加到工作簿
        XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
 
        // 将工作簿写入二进制字符串
        var wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' });
 
        // 将二进制字符串转换为Blob对象
        var blob = new Blob([s2ab(wbout)], { type: 'application/octet-stream' });
 
        // 创建一个隐藏的a标签,用于触发下载
        var a = document.createElement('a');
        a.href = URL.createObjectURL(blob);
        a.download = 'data.xlsx';
        a.style.display = 'none';
        document.body.appendChild(a);
 
        // 触发下载
        a.click();
 
        // 清理
        document.body.removeChild(a);
 
        // 辅助函数:将二进制字符串转换为ArrayBuffer
        function s2ab(s) {
            var buf = new ArrayBuffer(s.length);
            var view = new Uint8Array(buf);
            for (var i = 0; i < s.length; i++) {
                view[i] = s.charCodeAt(i) & 0xFF;
            }
            return buf;
        }
 
    </script>
</body>
 
</html>

(上面的list数据进行了删除2333)

然后会生成一个html文件,在浏览器中打开最后会默认下载一个xlsx文件,就是最后保存的数据啦!

image.png

虽然数据都是虚假的,但还是稍微涂了一下,希望对你有帮助 注:csdn里的清风挽明月和折纸寄与风都是我哦!