handleFormData(formData) {
const headers = [
'发运单号',
'发运项目',
'运输公司',
'客户姓名',
'客户电话',
'运输车号',
'运输司机',
'备注',
];
const dataRows = [
formData.shipmentNumber,
formData.projectName,
formData.subsupplierName,
formData.clientName,
formData.clientPhone,
formData.numberPlate,
formData.transporter,
formData.shipmentRemark,
];
return [headers, dataRows];
},
exportShipments() {
//获取表格对象
const table1 = this.$refs.table1;
const table2 = this.$refs.table2;
const tableData = this.handleFormData(this.ruleForm);
const table1Array = this.convertToArray(table1.$el);
const table2Array = this.convertToArray(table2.$el);
// 合并二维数组
const dataArray = [].concat(tableData,[[]], table1Array,[[]] , table2Array);
// 将合并后的数组转换为 workbook 对象
const worksheet = XLSX.utils.aoa_to_sheet(dataArray);
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
//将工作簿转换为二进制数据流
let out = XLSX.write(workbook, {
bookType: 'xlsx',
type: 'array'
});
//保存为文件
let blob = new Blob([out], {
type: 'application/octet-stream'
});
saveAs(blob, '发货单.xlsx');
// XLSX.writeFile(workbook, 'data.xlsx');
},
// 辅助方法:将 HTML 元素的数据转换为二维数组
convertToArray(element) {
const tableRows = element.getElementsByTagName('tr');
let dataArray = [];
let array = [];
for (let i = 0; i < tableRows.length; i++) {
const tableCells = tableRows[i].getElementsByTagName('td');
const tableHeads = tableRows[i].getElementsByTagName('th');
const rowArray = [];
for (let j = 0; j < tableCells.length; j++) {
rowArray.push(tableCells[j].innerText);
}
const thArray = [];
for (let i = 0; i < tableHeads.length; i++) {
thArray.push(tableHeads[i].innerText);
}
dataArray.push(thArray,rowArray);
array = dataArray.filter(item=>item.length>0)
console.log(array)
}
return array;
},
导出excel
最新推荐文章于 2024-10-05 01:22:45 发布