JS实现导出Excel和CSV文件操作 | 您所在的位置:网站首页 › vba导出csv › JS实现导出Excel和CSV文件操作 |
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 实验室设备网 版权所有 |