表格的导出

复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    点击选择文件:<input type="file">
    <button onclick="creatdTable()">点击下载</button>
    <table id="testTable">
        <thead>
            <tr>
                <th>sss</th>
                <th>sss</th>
                <th>sss</th>
                <th>sss</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td rowspan="2">aa</td>
                <td>aa</td>
                <td>aa</td>
                <td>aa</td>
            </tr>
            <tr>
                <td>aa</td>
                <td>aa</td>
                <td>aa</td>
            </tr>
        </tbody>
    </table>
</body>

</html>
<script src="../sheetjs-github/dist/xlsx.full.min.js"></script>
<script>
导入 document.querySelector("input").onchange = function fildfunction() { let reader = new FileReader() reader.readAsBinaryString(this.files[0]); reader.onload = function () { try { workbook = XLSX.read(reader.result, { type: 'binary' }), // 以二进制流方式读取得到整份excel表格对象 persons = []; // 存储获取到的数据 } catch (e) { console.log('文件类型不正确'); return; } // 表格的表格范围,可用于判断表头是否数量是否正确 var fromTo = ''; console.log(workbook); alert("11") // 遍历每张表读取 for (var sheet in workbook.Sheets) { if (workbook.Sheets.hasOwnProperty(sheet)) { fromTo = workbook.Sheets[sheet]['!ref']; console.log(fromTo); persons = persons.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet])); break; // 如果只取第一张表,就取消注释这行 } } console.log(persons); } }



数据直接导出 function download() {
var arr = [ ['S', 'h', 'e', 'e', 't', 'J', 'S'], ["1", 2, 3, 4, 5], ] let workbook = XLSX.utils.book_new(); const ws = XLSX.utils.aoa_to_sheet(arr); XLSX.utils.book_append_sheet(workbook, ws, "workSheetName"); return XLSX.writeFile(workbook, "fileName.xlsx", { type: 'binary' }); }


页面表格导出 function creatdTable() { let el
= document.querySelector("#testTable") const options = { raw: true }; const workbook = XLSX.utils.table_to_book(el, options); return XLSX.writeFile(workbook, "fileName.xlsx", { type: 'binary' }); } </script>
复制代码

 

 

 后端返回二进制导出

复制代码
    var url = this.api.api3+'/Settle/ExportSettleOrders'//+str;this.exportParam是参数
        axios.post(url, this.exportParam, {responseType: 'blob'},{headers:{'Access-Token':localStorage.getItem('Token')}})
        .then(function (response) {
          that.exportlogin = false;
          var filename = '结算订单列表导出.xlsx';
          var blob = new Blob([response.data])
          var downloadElement = document.createElement('a');
          var href = window.URL.createObjectURL(blob); //创建下载的链接
          downloadElement.href = href;
          downloadElement.download = filename; //下载后文件名
          document.body.appendChild(downloadElement);
          downloadElement.click(); //点击下载
          document.body.removeChild(downloadElement); //下载完成移除元素
          window.URL.revokeObjectURL(href); //释放掉blob对象
          console.log(response);
        })
        .catch(function (error) {
        that.exportlogin = false;
          console.log(error);
        });
        },
复制代码

 

posted on   马玉豪  阅读(26)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示