更新
2024.1.18 日初步版本
问题描述
题主在制作excel导出的时候,发现没有相关的API 可以直接传入Base64数据,并输出图片到excel文件中。后续看到Excelize的API文档中存在有该方法
func(f *File) AddPictureFromBytes(sheet, cellstring, pic *Picture) error
最后通过该方法解决了该场景问题
具体实现代码
import (
_ "image/gif"
_ "image/jpeg"
_ "image/png"
)
// 该import最为重要!!若不添加,AddPictureFromBytes会爆出Format异常
// 处理Base64数据
image_data := strings.Split(items[index].Photo,",")[1]
binary_data := base64.NewDecoder(base64.StdEncoding, strings.NewReader(image_data))
buf := &bytes.Buffer{}
buf.ReadFrom(binary_data)
err := excel.AddPictureFromBytes(sheetName, fmt.Sprintf("C%d", index+1+2), &excelize.Picture{
Extension:".jpg",
File: buf.Bytes(),
Format: &excelize.GraphicOptions{
OffsetX:5,
OffsetY:4,
AutoFit: true,
ScaleX:0.99,
ScaleY:0.99,
},
})