Red de conocimiento informático - Problemas con los teléfonos móviles - vue exporta datos de la tabla de encabezados de varios niveles a Excel

vue exporta datos de la tabla de encabezados de varios niveles a Excel

Nota: antes de comenzar, instale el complemento; consulte: blogs.com/zhoulifeng/p/9974735.html

Paso 2: modifique el código fuente en export2Excel.js El ejemplo de este. el artículo es de nivel 3. El encabezado se puede modificar según sea necesario

//El código fuente aquí ha sido modificado.

export?function?export_json_to_excel(excelData,?autoWidth?=?true,?bookType?=?' xlsx')?{

?/*Let multiHeader = excelData.multiHeader; ?//?Encabezado de primer nivel

?let?multiHeader2?=?excelData.multiHeader2;?//?Encabezado de segundo nivel

?let?header?=?excelData. tHeader;?//?Título de tercer nivel

?let?data?=?excelData.transData;?//Datos de tabla

Let defaultTitle =?excelData.defaultTitle;?/ /?título de la tabla de Excel

?//?celdas fusionadas de la tabla de Excel

?//?console.log(multiHeader);

?//? .log(multiHeader2);

?//?console.log(encabezado);

?//?console.log(data);

? //?console.log(defaultTitle);

?//?console.log(merges);

?data.unshift(header);

?// Esta es la segunda línea del título

* for(let?i?=?multiHeader2.length?-?1;?i?gt;? -1;?i--)? {

data.unshift(multiHeader2[i])

?}

?// Este es el comienzo de la primera línea

* for(let?i?=?multiHeader.length?){

data.unshift(multiHeader[i])

?}

var? SheetJS";

var?wb?=?new?Workbook(),

ws?=?sheet_from_array_of_arrays(data);

?//Fusionar Excel celda y establezca el ancho de la tabla

if (merges.length?gt;?0)?{

if(!ws['!merges'])?ws['!merges ']? =?[];

merges.forEach(item?=gt;?{

?ws['!merges'].push(XLSX.utils.decode_range( elemento))

})

?}

si (ancho automático)? {

/* Establece el ancho máximo de cada columna en la hoja de trabajo*/

const?colWidth?=?data.map(row?=gt;?row.map(val ? =gt;?{

?/* Primero determine si es nulo/indefinido**

If (val?==?null)?{

Devolver {

?' ¿Qué?: ?10

};

?}

?/* Determinar si es chino nuevamente**

* else if(val.toString().charCodeAt(0) ? {

Devolver {

'wch':?val.toString().length?*?2

};

}else{

return{

?' wch':?val.toString().length

}

}

?

}))

/* Utilice la primera línea como valor inicial**

let?{

?for?(let?j?=?0;?j?lt;?colWidth[i].length;?j )?{

if(resultado[j][' ¿wch' ]?lt;?colWidth[i][j]['wch'])?{

?resultado[j]['wch'] =?colWidth[i][j][ 'wch '];

}

?}

}

ws['!cols'] =?resultado;

?}

?//-------------------------------- -- -----------------------

?/*?agregar?hoja de trabajo?al?libro de trabajo?*/

?wb.SheetNames.push(ws_name);

?wb.Sheets[ws_name]? =?ws;

?var?wbout?=?{

bookType: ?xlsx',

bookType: ?xlsx',

bookSST: ?false,

type: ?binario'

? }) ;

?var?title?=?defaultTitle?||?List'

?saveAs(new?Blob([s2ab(wbout)] , {

tipo: ?" aplicación/octeto-stream"

?}), ?título? ?" .xlsx")

}

Paso 3: Agregar elementos y métodos en los métodos de la página

lt;Button?type="success"?style="margin-right: 5px;"?@click="exportmulti"gt; exportlt; /Buttongt;

exportmulti()?{

?import("@/exportExcel/Export2Excel2").then(excel?=gt;?{

const?multiHeader?=?[

?

""",

""",

""",

p>

""",

""",

""",

""",

" "",

""",

""",

""",

""" ,

"""

,

""",

""",

""",

""",

?]

];

const?multiHeader2?=?[

?[

"",

"Plataforma comercial de cuenta oficial de WeChat",

"Plataforma comercial abierta de WeChat",

"Alipay",

"Total",

"Antes del 1 de septiembre de 2016",

"",

"1 de septiembre de 2016 - 31 de diciembre de 2017".

"",

"2018.1.1-2019.12.31",

"",

"Después de 2020.1.1" ,

"",

"Total",

"Antes de 2016.9.1",

"2016.9.1-2019.12. 31". 1",

"",

" 2016.9.1-2017.12.31",

"",

"",

"",

"",

"",

"",

"",

"",

"", "Total"

?"];

];

"Total"

?

]

const?tHeader?=?[

?"" ,

?"" ,

?"" ,

?"" ,

?"" ,

?"" ,

?"" ,

?"".

WeChat",

? "Alipay",

? WeChat",

? "Alipay",

? /p>

?WeChat",

?"Alipay",

?Alipay",

?WeChat",

?"Alipay",

?Alipay",

?WeChat",

?"Alipay",

?" ? "Alipay",

? "WeChat",

? "Alipay",

? p>

?"Alipay",

?Alipay",

?WeChat",

?"Alipay",

?Alipay",

?

];

///?table corresponde a campos importados

const?filterVal? =? [

?"Nombre de la empresa",

?"eWeChatMountApp",

?"eWeChatMountApp",

?" eAlipay ",

?" eTotal",

? " reWeChatBefore",

? " reAlipayBefore",

" reWeChatBe",

?" reAlipayBe",

? " reWeChatBe",

? " reAlipayBe",

" reWeChatTe",

? p>

?" reAlipayTe",

? " reWeChatAf ",

? " reAlipayAf ",

?

?"deWeChatBefore",

?"deAlipayBefore",

?"deWeChatBe",

?"deAlipayBefore",

?" deWeChatBe",

?" deAlipayBe",

?" deWeChatTe",

?" deAlipayTe",

? " deWeChatAf",

?" deAlipayAf",

?" deTotal"

];

let?list ?=?this .capitalStatementData;

// Conversión de datos de tabla

const?data?=?this.formatJson(filterVal,?list);

// Fusionar celdas en todos los encabezados de la tabla. Se recomienda fusionar fila por fila; de lo contrario, es fácil cometer errores.

const?merges?=?[

?"A1:A3",

?" ?B1:E1",

?" ?B2:B3",

?" ?C2 :C3",

?" ?D2:D3",

?"E2:E3",

?E2:E3",

?"F1:N1",

?

F1: N1",

? " F2: G2",

? F2: G2",

? " H2: I2",

?H2:I2",

?"J2:K2",

?J2:K2",

?"L2:M2",

? L2: M2",

?" ?N2: N3",

?" O1: W1",

?O1: W1",

?"O2:P2",

?O2:P2",

?"Q2:R2",

?O2:P2" ,

?"Q2:R2",

?"S2:T2",

?S2:T2",

? "U2:V2",

?U2:V2",

?" > ];

//Exportar una tabla de Excel con título

const?defaultTitle?=?"Estadísticas de fondos por negocio";

///? Pasar parámetros en orden

excel.export_json_to_excel({

?multiHeader,?//Aquí está el encabezado de la tabla para la primera fila

?multiHeader2,?//Aquí está el encabezado de la tabla para la segunda fila

?tHeader,?//Aquí debe contarse el encabezado de la tercera fila

?data ,?/ /?Datos de la tabla

?defaultTitle,?//Nombre de la tabla de Excel

?merges?//?Fusionar celdas de Excel

}) ;

?}) )

},

/*?Convierta los datos de la tabla para exportarlos correctamente

------ ---- ---------------------------------------------- ---- -------*/

formatJson(filterVal, ? jsonData)?{

?return?jsonData.map(v?=gt;

p>

filterVal.map(j?=gt;?{

If (j!==? "companyName")?{

return parseTime(v[j] );

?} En caso contrario, {

devuelve v[j];

})

?

},

);