工作表中插入图片
支持扩展名 .gif,.jpg,.jpeg,.png,.tif,.tiff
需要传入相关的包
.gif > image/gif
.jpg / .jpeg > image/jpeg
.png > image/png
-
插入本地图片 通过图片路径
func (f *File) AddPicture(sheet, cell, picture, format string) error
format string 可以通过json字符串的格式传参
可选参数 autofit 指定是否使图片尺寸自动适合单元格,其默认值为 false。 bool
可选参数 hyperlink 用以指定图片的超链接。string
可选参数 hyperlink_type 指定图片超链接的类型,支持外部链接 External 和内部链接 Location 两种类型,当使用 Location 连接到单元格位置时,坐标需要以 # 开始。
可选参数 positioning 定义了 Excel 电子表格中图片位置属性支持 oneCell(大小固定,位置随单元格改变)和 absolute (大小、位置均固定)两种类型,当不设置此参数时,默认属性为大小、位置随单元格而改变。
可选参数 print_obj 指定打印工作表时是否打印图片,其默认值为 true。
可选参数 lock_aspect_ratio 指定是否锁定图片的纵横比,其默认值为 false。
可选参数 locked 指定是否锁定图片。除非工作表受到保护,否则锁定对象无效。
可选参数 x_offset 指定图片与插入单元格的水平偏移量,其默认值为 0。int
可选参数 x_scale 指定图片的水平缩放比例,默认值为 1.0,表示 100%。float64
可选参数 y_offset 指定图片与插入单元格的垂直偏移量,其默认值为 0。int
可选参数 y_scale 指定图片的垂直缩放比例,其默认值为 1.0,表示 100%。float
其实在底层,是一个私有的结构体type formatPicture struct { FPrintsWithSheet bool `json:"print_obj"` FLocksWithSheet bool `json:"locked"` NoChangeAspect bool `json:"lock_aspect_ratio"` Autofit bool `json:"autofit"` OffsetX int `json:"x_offset"` OffsetY int `json:"y_offset"` XScale float64 `json:"x_scale"` YScale float64 `json:"y_scale"` Hyperlink string `json:"hyperlink"` HyperlinkType string `json:"hyperlink_type"` Positioning string `json:"positioning"` }
由于是私有结构体所以只能通过json字符串的方式传参
-
通过二进制数据的方式插入,其实在
AddPicture
方法中调用的也是二进制的方式
func (f *File) AddPictureFromBytes(sheet, cell, format, name, extension string, file []byte) error
ext := path.Ext(picture) file, _ := ioutil.ReadFile(picture) _, name := filepath.Split(picture) f.AddPictureFromBytes(sheet, cell, format, name, ext, file)
format 与
AddPicture
一致 -
获取excel中的图片
func (f *File) GetPicture(sheet, cell string) (string, []byte, error)
返回值中第一个是文件名,其实重要的是获取扩展名
第二个是图片的二进制数据,是字符切片,可以直接写进文件中f, err := excelize.OpenFile("Book1.xlsx") if err != nil { fmt.Println(err) return } file, raw, err :