如何将表格数据和图片导出为Excel文件
// 导出按钮点击事件 document.getElementById('exportBtn').onclick = function () { var checkStatus = table.checkStatus('ID-table-demo-search'); var data = checkStatus.data; if (data.length > 0) { // 创建一个Workbook对象 var workbook = XLSX.utils.book_new(); // 创建一个Worksheet对象 var worksheet = XLSX.utils.json_to_sheet(data);
// 在Worksheet中插入图片
for (var i = 0; i < data.length; i++) {
var img = new Image();
img.src = data[i].image; // 假设图片的URL存在image字段中
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0, img.width, img.height);
var base64 = canvas.toDataURL('image/jpeg');
var image = new Image();
image.src = base64;
var imageAnchor = XLSX.utils.sheet_add_image(worksheet, image, 'A' + (i + 2));
worksheet['!object'].anchors.push(imageAnchor);
}
// 将Worksheet添加到Workbook中
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 将Workbook转换为Excel文件
var excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
// 保存Excel文件
saveExcelFile(excelBuffer);
} else {
layer.msg('请先选择要导出的数据');
}
};
// 保存Excel文件 function saveExcelFile(buffer) { var blob = new Blob([buffer], {type: 'application/octet-stream'}); var fileName = 'export.xlsx';
if (navigator.msSaveBlob) {
// 兼容IE10及以上
navigator.msSaveBlob(blob, fileName);
} else {
var link = document.createElement('a');
if (link.download !== undefined) {
// 兼容Chrome、Firefox、Safari
var url = URL.createObjectURL(blob);
link.setAttribute('href', url);
link.setAttribute('download', fileName);
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
}
}
原文地址: https://www.cveoy.top/t/topic/qqMY 著作权归作者所有。请勿转载和采集!