react使用xlsx导出Excel 带图片
时间: 2023-09-18 18:13:04 浏览: 280
基于react/antd的纯前端js导入excel
5星 · 资源好评率100%
要在React中导出带图片的Excel文件,您可以使用`xlsx`和`file-saver`库。以下是一个示例代码,可以将包含图片的数据写入Excel文件:
```javascript
import XLSX from 'xlsx';
import FileSaver from 'file-saver';
// 创建一个工作簿
const workbook = XLSX.utils.book_new();
// 创建一个工作表
const worksheet = XLSX.utils.json_to_sheet([
{ Name: 'John Doe', Image: 'path_to_image.png' },
]);
// 加载图片
const imgData = fs.readFileSync('path_to_image.png');
const img = XLSX.utils.sheet_add_image(
worksheet,
`B2`,
imgData,
{ tl: { col: 0.5, row: 0.5 }, ext: { width: 100, height: 100 } }
);
// 添加图片到工作表
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
// 将工作簿转换为二进制文件
const excelFile = XLSX.write(workbook, { bookType: 'xlsx', type: 'binary' });
// 保存文件
const buffer = new ArrayBuffer(excelFile.length);
const view = new Uint8Array(buffer);
for (let i = 0; i < excelFile.length; ++i) {
view[i] = excelFile.charCodeAt(i) & 0xff;
}
const blob = new Blob([buffer], { type: 'application/octet-stream' });
FileSaver.saveAs(blob, 'file_with_image.xlsx');
```
在上述代码中,`sheet_add_image`方法用于将图片添加到工作表中。请注意,路径`path_to_image.png`应替换为实际图片的路径。此外,您还可以使用其他图像格式,例如JPEG。
希望这可以帮助您实现导出带图片的Excel文件。
阅读全文