Изображение
Добавить изображение
func (f *File) AddPicture(sheet, cell, picture string, opts *GraphicOptions) error
AddPicture предоставляет способ добавления изображения на листе с помощью заданного формата изображения (например, смещение, масштаб, соотношение сторон и параметры печати) и путь к файлу. Эта функция может быть использована для безопасности параллелизма.
Например:
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
для перехода к одной из ячеек в этой книге. Если для параметра HyperlinkType
указано значение Location
, координаты должны начинаться с символа #
.
Необязательный параметр Positioning
определяет 3 типа положения объекта графика в электронной таблице: oneCell
(переместить, но не изменять размер с ячейками), twoCell
(переместить и изменить размер с помощью ячеек) и absolute
( Не перемещайте и не изменяйте размер с помощью ячеек). Если вы не зададите этот параметр, позиционирование по умолчанию будет перемещаться и изменять размер с ячейками.
func (f *File) AddPictureFromBytes(sheet, cell string, pic *Picture) error
AddPictureFromBytes предоставляет способ добавления изображения на листе с помощью заданного формата изображения (такого как смещение, масштаб, настройка формата изображения и настройки печати), текстовое описание, имя расширения и содержимое файла в []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)
GetPicture предоставляет функцию для получения базового имени изображения и необработанного содержимого в XLSX с помощью заданного рабочего листа и имени ячейки. Эта функция может быть использована для безопасности параллелизма. Эта функция возвращает имя файла в XLSX и файлы содержимого в [] byte
типов данных.
Например:
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
DeletePicture предоставляет функцию для удаления диаграмм в XLSX по заданному рабочему листу и имени ячейки. Обратите внимание, что файл изображения не будет удален из документа в настоящее время.