圖片

插入圖片

func (f *File) AddPicture(sheet, cell, picture string, opts *GraphicOptions) error

根據給定的工作表名稱、儲存格坐標、圖片地址和圖片格式(例如偏移、縮放和列印設定等),在對應的儲存格上插入圖片。此功能是併發安全的。

例如:

package main

import (
    "fmt"
    _ "image/gif"
    _ "image/jpeg"
    _ "image/png"

    "github.com/xuri/excelize/v2"
)

func main() {
    f := excelize.NewFile()
    defer func() {
        if err := f.Close(); err != nil {
            fmt.Println(err)
        }
    }()
    // 插入圖片
    if err := f.AddPicture("Sheet1", "A2", "image.png", nil); err != nil {
        fmt.Println(err)
        return
    }
    // 插入帶有縮放比例和超鏈接的圖片
    enable, disable := true, false
    if err := f.AddPicture("Sheet1", "D2", "image.jpg",
        &excelize.GraphicOptions{
            ScaleX:        0.5,
            ScaleY:        0.5,
            Hyperlink:     "#Sheet2!D8",
            HyperlinkType: "Location",
        },
    ); err != nil {
        fmt.Println(err)
        return
    }
    // 插入圖片,並設定圖片的外部超鏈接、列印和位置屬性
    if err := f.AddPicture("Sheet1", "H2", "image.gif",
        &excelize.GraphicOptions{
            OffsetX:         15,
            OffsetY:         10,
            Hyperlink:       "https://github.com/xuri/excelize",
            HyperlinkType:   "External",
            PrintObject:     &enable,
            LockAspectRatio: false,
            Locked:          &disable,
            Positioning:     "oneCell",
        },
    ); err != nil {
        fmt.Println(err)
        return
    }
    if err := f.SaveAs("Book1.xlsx"); err != nil {
        fmt.Println(err)
    }
}

可選參數 AltText 設定圖形對象的可選文字。

可選參數 PrintObject 設定列印工作表時是否列印圖形對象,其缺省值為 true

可選參數 Locked 設定是否鎖定圖形對象。除非工作表受到保護,否則鎖定對象無效。

可選參數 LockAspectRatio 設定是否鎖定圖形對象的縱橫比,其缺省值為 false

可選參數 AutoFit 設定是否使圖形對象尺寸自動適合存儲格,其缺省值為 false

可選參數 OffsetX 設定圖形對象與插入存儲格的水平偏移量,其缺省值為 0。

可選參數 OffsetY 設定圖形對象與插入存儲格的垂直偏移量,缺省值為 0。

可選參數 ScaleX 設定圖形對象的水平縮放比例,其缺省值為 1.0,表示 100%。

可選參數 ScaleY 設定圖形對象的垂直縮放比例,其缺省值為 1.0,表示 100%。

可選參數 Hyperlink 用以設定圖形對象的超鏈接。

可選參數 HyperlinkType 設定圖形對象超鏈接的類型,支援外部鏈接 External 和內部鏈接 Location 兩種類型,當使用 Location 連接到存儲格位置時,坐標需要以 # 開始。

可選參數 Positioning 定義了電子錶格中圖形對象位置屬性的 3 種類型:oneCell(大小固定,位置隨存儲格改變)、twoCell(大小和位置隨存儲格改變)和 absolute (大小、位置均固定)兩種類型,當不設置此參數時,默認屬性為大小、位置隨存儲格改變。

func (f *File) AddPictureFromBytes(sheet, cell string, pic *Picture) error

根據給定的工作表名稱、儲存格坐標、圖片地址和圖片格式(例如偏移、縮放和列印設定等)、圖片描述、圖片擴展名和 []byte 類別的圖片內容,在對應的儲存格上插入圖片。

例如:

package main

import (
    "fmt"
    _ "image/jpeg"
    "os"

    "github.com/xuri/excelize/v2"
)

func main() {
    f := excelize.NewFile()
    defer func() {
        if err := f.Close(); err != nil {
            fmt.Println(err)
        }
    }()
    file, err := os.ReadFile("image.jpg")
    if err != nil {
        fmt.Println(err)
        return
    }
    if err := f.AddPictureFromBytes("Sheet1", "A2", &excelize.Picture{
        Extension: ".jpg",
        File:      file,
        Format:    &excelize.GraphicOptions{AltText: "Excel Logo"},
    }); err != nil {
        fmt.Println(err)
        return
    }
    if err := f.SaveAs("Book1.xlsx"); err != nil {
        fmt.Println(err)
    }
}

獲取圖片

func (f *File) GetPictures(sheet, cell string) ([]Picture, error)

根據給定的工作表名稱和儲存格坐標獲取活頁簿上的圖片,將以 []byte 類別傳回嵌入在 Excel 文檔中的圖片。此功能是併發安全的。例如,獲取名為 Sheet1 的工作表上 A2 儲存格上的圖片:

f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
    fmt.Println(err)
    return
}
defer func() {
    if err := f.Close(); err != nil {
        fmt.Println(err)
    }
}()
pics, err := f.GetPictures("Sheet1", "A2")
if err != nil {
    fmt.Println(err)
}
for idx, pic := range pics {
    name := fmt.Sprintf("image%d%s", idx+1, pic.Extension)
    if err := os.WriteFile(name, pic.File, 0644); err != nil {
        fmt.Println(err)
    }
}

刪除圖片

func (f *File) DeletePicture(sheet, cell string) error

根據給定的工作表名稱和儲存格坐標,刪除對應儲存格上的圖片。

results matching ""

    No results matching ""