From 490a858b322a077ef5cb67899ccd7446d52d5d78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=9D=A8?= <1711467488@qq.com> Date: Mon, 12 Feb 2018 22:32:42 +0800 Subject: [PATCH] no message Former-commit-id: c301d135db1a723b87c3690711b2f715cd2766b8 Former-commit-id: 2163fe2927d74ac0967ed8b44008006210f50705 Former-commit-id: 904f23dfa702214abd8a8669af0eb65b3f07ad0e --- src/plugin/export/_export-csv.js | 5 +++-- src/plugin/export/_export2Excel.js | 26 +------------------------- 2 files changed, 4 insertions(+), 27 deletions(-) diff --git a/src/plugin/export/_export-csv.js b/src/plugin/export/_export-csv.js index 88d1aaf9..50caf2af 100755 --- a/src/plugin/export/_export-csv.js +++ b/src/plugin/export/_export-csv.js @@ -1,9 +1,10 @@ +/* eslint-disable */ + /* + 此代码来源于iview表格组件的CSV导出部分 https://github.com/iview/iview */ -/* eslint-disable */ - function has (browser) { const ua = navigator.userAgent; if (browser === 'ie') { diff --git a/src/plugin/export/_export2Excel.js b/src/plugin/export/_export2Excel.js index 91287738..3f39be92 100755 --- a/src/plugin/export/_export2Excel.js +++ b/src/plugin/export/_export2Excel.js @@ -1,4 +1,5 @@ /* eslint-disable */ + import './_blob' import FileSaver from 'file-saver' import XLSX from 'xlsx' @@ -17,21 +18,17 @@ function generateArray(table) { var rowspan = cell.getAttribute('rowspan'); var cellValue = cell.innerText; if (cellValue !== "" && cellValue == +cellValue) cellValue = +cellValue; - //Skip ranges ranges.forEach(function (range) { if (R >= range.s.r && R <= range.e.r && outRow.length >= range.s.c && outRow.length <= range.e.c) { for (var i = 0; i <= range.e.c - range.s.c; ++i) outRow.push(null); } }); - //Handle Row Span if (rowspan || colspan) { rowspan = rowspan || 1; colspan = colspan || 1; ranges.push({s: {r: R, c: outRow.length}, e: {r: R + rowspan - 1, c: outRow.length + colspan - 1}}); }; - //Handle Value outRow.push(cellValue !== "" ? cellValue : null); - //Handle Colspan if (colspan) for (var k = 0; k < colspan - 1; ++k) outRow.push(null); } out.push(outRow); @@ -91,50 +88,32 @@ export function export_table_to_excel(id) { var theTable = document.getElementById(id); var oo = generateArray(theTable); var ranges = oo[1]; - - /* original data */ var data = oo[0]; var ws_name = "SheetJS"; - var wb = new Workbook(), ws = sheet_from_array_of_arrays(data); - - /* add ranges to worksheet */ - // ws['!cols'] = ['apple', 'banan']; ws['!merges'] = ranges; - - /* add worksheet to workbook */ wb.SheetNames.push(ws_name); wb.Sheets[ws_name] = ws; - var wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: false, type: 'binary'}); - FileSaver.saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), "test.xlsx") } export function export_json_to_excel(th, jsonData, defaultTitle) { - - /* original data */ - var data = jsonData; data.unshift(th); var ws_name = "SheetJS"; var wb = new Workbook(), ws = sheet_from_array_of_arrays(data); - - /*设置worksheet每列的最大宽度*/ const colWidth = data.map(row => row.map(val => { - /*先判断是否为null/undefined*/ if (val == null) { return {'wch': 10}; } - /*再判断是否为中文*/ else if (val.toString().charCodeAt(0) > 255) { return {'wch': val.toString().length * 2}; } else { return {'wch': val.toString().length}; } })) - /*以第一行为初始值*/ let result = colWidth[0]; for (let i = 1; i < colWidth.length; i++) { for (let j = 0; j < colWidth[i].length; j++) { @@ -144,11 +123,8 @@ export function export_json_to_excel(th, jsonData, defaultTitle) { } } ws['!cols'] = result; - - /* add worksheet to workbook */ wb.SheetNames.push(ws_name); wb.Sheets[ws_name] = ws; - var wbout = XLSX.write(wb, {bookType: 'xlsx', bookSST: false, type: 'binary'}); var title = defaultTitle || 'table' FileSaver.saveAs(new Blob([s2ab(wbout)], {type: "application/octet-stream"}), title + ".xlsx")