Элементы управления формы

FormControl напрямую отображает информацию об элементах управления формы.

type FormControl struct {
    Cell         string
    Macro        string
    Width        uint
    Height       uint
    Checked      bool
    CurrentVal   uint
    MinVal       uint
    MaxVal       uint
    IncChange    uint
    PageChange   uint
    Horizontally bool
    CellLink     string
    Text         string
    Paragraph    []RichTextRun
    Type         FormControlType
    Format       GraphicOptions
}

Добавить элемент управления формой

func (f *File) AddFormControl(sheet string, opts FormControl) error

AddFormControl предоставляет метод для добавления кнопки управления формой на рабочий лист с заданным именем рабочего листа и параметрами управления формой. Поддерживаемый тип управления формой: кнопка, флажок, групповое поле, метка, кнопка выбора, полоса прокрутки и счетчик. Если задан макрос для элемента управления формы, расширение рабочей книги должно быть .xlsm или .xltm. Значение прокрутки должно быть между 0 и 30000. Обратите внимание, что если для элемента управления формы флажка задана ссылка на ячейку, Excelize не будет присваивать значение связанной ячейке при установке флажка. Чтобы отразить состояние чекбокса, используйте функцию SetCellValue, чтобы вручную установить значение связанной ячейки в true.

Пример 1, добавьте элемент управления формы кнопки с макросом, форматированным текстом, настраиваемым размером кнопки, свойством печати на Лист1!A2 и разрешите кнопке не перемещаться и не изменять размер с ячейками:

добавить управление формой кнопки с помощью Excelize

enable := true
err := f.AddFormControl("Лист1", excelize.FormControl{
    Cell:   "A2",
    Type:   excelize.FormControlButton,
    Macro:  "Button1_Click",
    Width:  140,
    Height: 60,
    Text:   "Button 1\r\n",
    Paragraph: []excelize.RichTextRun{
        {
            Font: &excelize.Font{
                Bold:      true,
                Italic:    true,
                Underline: "single",
                Family:    "Times New Roman",
                Size:      14,
                Color:     "777777",
            },
            Text: "C1=A1+B1",
        },
    },
    Format: excelize.GraphicOptions{
        PrintObject: &enable,
        Positioning: "absolute",
    },
})

Пример 2, добавьте элементы управления формы опциональной кнопки с проверенным статусом и текстом на Лист1!A1 и Лист1!A2:

добавить элементы управления формой опциональной кнопки с помощью Excelize

if err := f.AddFormControl("Лист1", excelize.FormControl{
    Cell:    "A1",
    Type:    excelize.FormControlOptionButton,
    Text:    "Option Button 1",
    Checked: true,
    Height:  20,
}); err != nil {
    fmt.Println(err)
}
if err := f.AddFormControl("Лист1", excelize.FormControl{
    Cell:    "A2",
    Type:    excelize.FormControlOptionButton,
    Text:    "Option Button 2",
    Height:  20,
}); err != nil {
    fmt.Println(err)
}

Пример 3: добавьте элемент управления формой кнопки прокрутки на Лист1!B1, чтобы увеличить или уменьшить значение Лист1!A1:

добавить элемент управления формой кнопки вращения с помощью Excelize

err := f.AddFormControl("Лист1", excelize.FormControl{
    Cell:       "B1",
    Type:       excelize.FormControlSpinButton,
    Width:      15,
    Height:     40,
    CurrentVal: 7,
    MinVal:     5,
    MaxVal:     10,
    IncChange:  1,
    CellLink:   "A1",
})

Пример 4: добавьте горизонтальную полосу прокрутки на лист Лист1!A2, чтобы изменить значение Лист1!A1, щелкнув стрелки прокрутки или перетащив ползунок:

добавить элемент управления формой горизонтальной полосы прокрутки с помощью Excelize

err := f.AddFormControl("Лист1", excelize.FormControl{
    Cell:         "A2",
    Type:         excelize.FormControlScrollBar,
    Width:        140,
    Height:       20,
    CurrentVal:   50,
    MinVal:       10,
    MaxVal:       100,
    IncChange:    1,
    PageChange:   1,
    CellLink:     "A1",
    Horizontally: true,
})

Получить элементы управления формой

func (f *File) GetFormControls(sheet string) ([]FormControl, error)

GetFormControls извлекает все элементы управления формы на листе по заданному имени листа. Обратите внимание, что в настоящее время эта функция не поддерживает получение ширины и высоты элементов управления формы.

Удалить элемент управления формой

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

DeleteFormControl предоставляет метод для удаления элемента управления формой на листе по заданному имени листа и ссылке на ячейку. Например, удалите элемент управления формы в Лист1!$A$1:

err := f.DeleteFormControl("Лист1", "A1")

results matching ""

    No results matching ""