图片

    例如:

    1. import (
    2. "fmt"
    3. _ "image/gif"
    4. _ "image/jpeg"
    5. _ "image/png"
    6. "github.com/360EntSecGroup-Skylar/excelize"
    7. )
    8. func main() {
    9. xlsx := excelize.NewFile()
    10. // 插入图片
    11. err := xlsx.AddPicture("Sheet1", "A2", "./image1.jpg", "")
    12. if err != nil {
    13. fmt.Println(err)
    14. }
    15. // 插入带有缩放比例和超链接的图片
    16. err = xlsx.AddPicture("Sheet1", "D2", "./image1.png", `{"x_scale": 0.5, "y_scale": 0.5, "hyperlink": "#Sheet2!D8", "hyperlink_type": "Location"}`)
    17. if err != nil {
    18. fmt.Println(err)
    19. // 插入图片,并设置图片的外部超链接、打印和位置属性
    20. 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"}`)
    21. if err != nil {
    22. fmt.Println(err)
    23. }
    24. if err != nil {
    25. fmt.Println(err)
    26. }
    27. }

    位置属性 positioning 支持 oneCell(大小固定,位置随单元格改变)和 absolute (大小、位置均固定)两种类型,当不设置此参数时,默认属性为大小、位置随单元格而改变。

    例如:

    1. package main
    2. import (
    3. "fmt"
    4. _ "image/jpeg"
    5. "io/ioutil"
    6. "github.com/360EntSecGroup-Skylar/excelize"
    7. )
    8. func main() {
    9. xlsx := excelize.NewFile()
    10. file, err := ioutil.ReadFile("./image1.jpg")
    11. fmt.Println(err)
    12. }
    13. err = xlsx.AddPictureFromBytes("Sheet1", "A2", "", "Excel Logo", ".jpg", file)
    14. if err != nil {
    15. fmt.Println(err)
    16. }
    17. err = xlsx.SaveAs("./Book1.xlsx")
    18. if err != nil {
    19. fmt.Println(err)
    20. }
    21. }

    获取图片

    1. xlsx, err := excelize.OpenFile("./Book1.xlsx")
    2. if err != nil {
    3. fmt.Println(err)
    4. return
    5. }
    6. file, raw := xlsx.GetPicture("Sheet1", "A2")
    7. if file == "" {
    8. return
    9. }
    10. err := ioutil.WriteFile(file, raw, 0644)
    11. if err != nil {
    12. fmt.Println(err)
    13. }