在react-excel-workbook工作表第一列插入图片对象是否可行?
结论
你当前的写法无法实现将图片插入工作表第一列的需求。
你使用的react-excel-workbook库本身仅支持导出文本类型的单元格值,不支持直接将base64格式的内容解析为单元格内嵌入的图片对象。
原因说明
该库底层依赖免费开源版的SheetJS(xlsx库),免费版本本身就不支持导出嵌入图片的功能,仅付费的SheetJS Pro版本支持该能力,因此上层封装的react-excel-workbook没有对应功能实现,你现在传入的base64最终只会导出为纯文本内容显示在单元格里。
你当前的代码示例
<Workbook.Sheet data={object.list} name="list"> <Workbook.Column label={Strings.fields.image} value={(row: any) => this.getBase64Image(row.photo)} /> <Workbook.Column label="Date" value={(row: any) => row.date && DateTime.fromISO(row.date).toFormat("dd/MM/yyyy")} /> <Workbook.Column label="Name" value="name" /> </Workbook.Sheet>
可行替代方案
- 若坚持使用
react-excel-workbook,可以将图片的访问地址作为文本导出到单元格,用户打开Excel后点击链接即可跳转查看图片,无法直接在单元格内预览 - 更换为
exceljs这类支持图片导出的库自行封装导出逻辑,该库支持直接将base64格式图片插入到指定单元格,还可自定义图片尺寸、边距等属性 - 企业场景可购买SheetJS Pro授权,基于官方付费版二次封装适配现有组件逻辑,代码改动量最小
内容的提问来源于stack exchange,提问作者André Reis
相关产品推荐
相关产品推荐

