This commit is contained in:
zhangdingyu
2019-09-18 10:15:45 +08:00
61 changed files with 7778 additions and 24 deletions

View File

@@ -1,7 +1,12 @@
/* eslint-disable */
require('script-loader!file-saver');
<<<<<<< HEAD
// import XLSX from 'xlsx'
import XLSX from 'xlsx-style'
=======
import XLSX from 'xlsx'
>>>>>>> 4a39ba8190d04cdcdea962794e7d7df3408bfd2d
function generateArray(table) {
var out = [];
var rows = table.querySelectorAll('tr');
@@ -145,6 +150,7 @@ export function export_table_to_excel(id) {
}
export function export_json_to_excel({
<<<<<<< HEAD
headerGroup,
dataGroup,
sheetGroup,
@@ -213,6 +219,72 @@ export function export_json_to_excel({
wb.SheetNames.push(ws_name);
wb.Sheets[ws_name] = ws;
}
=======
multiHeader = [],
header,
data,
filename,
merges = [],
autoWidth = true,
bookType= 'xlsx'
} = {}) {
/* original data */
filename = filename || 'excel-list'
data = [...data]
data.unshift(header);
for (let i = multiHeader.length-1; i > -1; i--) {
data.unshift(multiHeader[i])
}
var ws_name = "SheetJS";
var wb = new Workbook(),
ws = sheet_from_array_of_arrays(data);
if (merges.length > 0) {
if (!ws['!merges']) ws['!merges'] = [];
merges.forEach(item => {
ws['!merges'].push(XLSX.utils.decode_range(item))
})
}
if (autoWidth) {
/*设置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++) {
if (result[j]['wch'] < colWidth[i][j]['wch']) {
result[j]['wch'] = colWidth[i][j]['wch'];
}
}
}
ws['!cols'] = result;
}
/* add worksheet to workbook */
wb.SheetNames.push(ws_name);
wb.Sheets[ws_name] = ws;
>>>>>>> 4a39ba8190d04cdcdea962794e7d7df3408bfd2d
var wbout = XLSX.write(wb, {
bookType: bookType,
bookSST: false,