forked from AkkomaGang/admin-fe
refine:export adaptive colwidth in excel
This commit is contained in:
parent
516897b97a
commit
a8602e78f0
1 changed files with 19 additions and 1 deletions
20
src/vendor/Export2Excel.js
vendored
20
src/vendor/Export2Excel.js
vendored
|
@ -100,7 +100,6 @@ export function export_table_to_excel(id) {
|
|||
/* original data */
|
||||
var data = oo[0];
|
||||
var ws_name = "SheetJS";
|
||||
console.log(data);
|
||||
|
||||
var wb = new Workbook(), ws = sheet_from_array_of_arrays(data);
|
||||
|
||||
|
@ -127,6 +126,25 @@ export function export_json_to_excel(th, jsonData, defaultTitle) {
|
|||
|
||||
var wb = new Workbook(), ws = sheet_from_array_of_arrays(data);
|
||||
|
||||
/*设置worksheet每列的最大宽度*/
|
||||
const colWidth = data.map(row => row.map(val => {
|
||||
/*判断是否为中文*/
|
||||
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);
|
||||
|
|
Loading…
Reference in a new issue