JS实现导出Excel和CSV文件操作 您所在的位置:网站首页 vba导出csv JS实现导出Excel和CSV文件操作

JS实现导出Excel和CSV文件操作

2023-03-16 07:01| 来源: 网络整理| 查看: 265

JS

实现导出

Excel

CSV

⽂件操作

⼀、

js

导出

Excel

  

/**

 * 

通⽤的打开下载对话框⽅法,没有测试过具体兼容性

 * @param url 

下载地址,也可以是⼀个

blob

对象,必选

 * @param saveName 

保存⽂件名,可选

 */

function openDownloadDialog(url, saveName) {

    if (typeof url == 'object' && url instanceof Blob) {

        url = URL.createObjectURL(url); // 

创建

blob

地址

    }

    var aLink = document.createElement('a');

    aLink.href = url;

    aLink.download = saveName || ''; // HTML5

新增的属性,指定保存⽂件名,可以不要后缀,注意,

file:///

模式下不会⽣效

    var event;

    if (window.MouseEvent) event = new MouseEvent('click');

    else {

        event = document.createEvent('MouseEvents');

        event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);

    }

    aLink.dispatchEvent(event);

}

// 

将⼀个

sheet

转成最终的

excel

⽂件的

blob

对象,然后利⽤

URL.createObjectURL

下载

function sheet2blob(sheet, sheetName) {

    sheetName = sheetName || 'sheet1';

    var workbook = {

        SheetNames: [sheetName],

        Sheets: {}

    };

    workbook.Sheets[sheetName] = sheet;

    // 

⽣成

excel

的配置项

    var wopts = {

        bookType: 'xlsx', // 

要⽣成的⽂件类型

        bookSST: false, // 

是否⽣成

Shared String Table

,官⽅解释是,如果开启⽣成速度会下降,但在低版本

IOS

设备上有更好的兼容性

        type: 'binary'

    };

    var wbout = XLSX.write(workbook, wopts);

    var blob = new Blob([s2ab(wbout)], { type: "application/octet-stream" });

    // 

字符串转

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;

    }

    return blob;

}

var exportDataSource = [{

                    name: '

路⼈甲

',

                    phone: '123456789',

email:'**************'

                }, {

                    name: '

炮灰⼄

',

                    phone: '123456789',

email:'**************'

                }, {

                    name: '

⼟匪丙

',

                    phone: '123456789',

email:'**************'

                }, {

                    name: '

流氓丁

',



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有