图片
例如:
import (
"fmt"
_ "image/gif"
_ "image/jpeg"
_ "image/png"
"github.com/360EntSecGroup-Skylar/excelize"
)
func main() {
xlsx := excelize.NewFile()
// 插入图片
err := xlsx.AddPicture("Sheet1", "A2", "./image1.jpg", "")
if err != nil {
fmt.Println(err)
}
// 插入带有缩放比例和超链接的图片
err = xlsx.AddPicture("Sheet1", "D2", "./image1.png", `{"x_scale": 0.5, "y_scale": 0.5, "hyperlink": "#Sheet2!D8", "hyperlink_type": "Location"}`)
if err != nil {
fmt.Println(err)
// 插入图片,并设置图片的外部超链接、打印和位置属性
err = xlsx.AddPicture("Sheet1", "H2", "./image3.gif", `{"x_offset": 15, "y_offset": 10, "hyperlink": "https://github.com/360EntSecGroup-Skylar/excelize", "hyperlink_type": "External", "print_obj": true, "lock_aspect_ratio": false, "locked": false, "positioning": "oneCell"}`)
if err != nil {
fmt.Println(err)
}
if err != nil {
fmt.Println(err)
}
}
位置属性 positioning
支持 oneCell
(大小固定,位置随单元格改变)和 absolute
(大小、位置均固定)两种类型,当不设置此参数时,默认属性为大小、位置随单元格而改变。
例如:
package main
import (
"fmt"
_ "image/jpeg"
"io/ioutil"
"github.com/360EntSecGroup-Skylar/excelize"
)
func main() {
xlsx := excelize.NewFile()
file, err := ioutil.ReadFile("./image1.jpg")
fmt.Println(err)
}
err = xlsx.AddPictureFromBytes("Sheet1", "A2", "", "Excel Logo", ".jpg", file)
if err != nil {
fmt.Println(err)
}
err = xlsx.SaveAs("./Book1.xlsx")
if err != nil {
fmt.Println(err)
}
}
获取图片
xlsx, err := excelize.OpenFile("./Book1.xlsx")
if err != nil {
fmt.Println(err)
return
}
file, raw := xlsx.GetPicture("Sheet1", "A2")
if file == "" {
return
}
err := ioutil.WriteFile(file, raw, 0644)
if err != nil {
fmt.Println(err)
}