js xlsx 导出图片
时间: 2023-05-14 20:01:25 浏览: 414
JS XLSX是一款非常流行的JavaScript库,可以实现Excel文件的读取、写入以及格式转换等功能。在使用JS XLSX导出图片时,我们可以采用以下的步骤。
首先,将图片转为Base64编码格式,然后使用JS XLSX提供的SheetJS.pngbase64函数将Base64编码转换为图像数据。将图像数据传给JS XLSX,就可以在Excel中插入图片了。
下面是一段示例代码,演示了如何使用JS XLSX导出图片。
```javascript
// 将图片转为Base64编码
const imgUrl = 'https://example.com/image.jpg';
const response = await fetch(imgUrl);
const blob = await response.blob();
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = () => {
const base64data = reader.result.split(',')[1]; // 去掉data:image/jpeg;base64,
// 将Base64编码转为图像数据
const data = SheetJS.pngbase64(base64data);
// 创建Excel文件
const wb = XLSX.utils.book_new();
const ws = XLSX.utils.book_append_sheet(wb, []);
// 插入图片
XLSX.utils.sheet_add_aoa(ws, [[{ t: 's', v: 'Image:' }, { t: 's', v: '' }]]);
XLSX.utils.sheet_add_aoa(ws, [['', { t: 's', v: imgUrl }]]);
const imgRef = XLSX.utils.decode_range(ws['!ref']);
XLSX.utils.sheet_add_image(ws, { imageData: data, type: 'png' }, `B${imgRef.e.r + 1}`);
// 将Excel文件导出为二进制数据
const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
const blob = new Blob([wbout], { type: 'application/octet-stream' });
// 下载Excel文件
const filename = 'image.xlsx';
if (navigator.msSaveBlob) {
navigator.msSaveBlob(blob, filename)
} else {
const link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = filename;
link.click();
URL.revokeObjectURL(link.href);
}
}
```
以上就是如何使用JS XLSX导出图片的简单介绍,通过将图片转为Base64编码,再将Base64编码转为图像数据,就可以在Excel中插入图片了。
阅读全文