Функция инструмента

Добавить таблицу

func (f *File) AddTable(sheet string, table *Table) error

AddTable предоставляет метод для добавления таблицы в рабочий лист с помощью заданного имени рабочего листа, области координат и формата.

  • Пример 1, создайте таблицу A1:D5 на Sheet1:

Добавить таблицу

err := f.AddTable("Sheet1", &excelize.Table{Range: "A1:D5"})
  • Пример 2, создайте таблицу F2:H6 на Sheet2 с установленным форматом:

Добавить таблицу с установленным форматом

disable := false
err := f.AddTable("Sheet2", &excelize.Table{
    Range:             "F2:H6",
    Name:              "table",
    StyleName:         "TableStyleMedium2",
    ShowFirstColumn:   true,
    ShowLastColumn:    true,
    ShowRowStripes:    &disable,
    ShowColumnStripes: true,
})

Обратите внимание, что таблица должна содержать не менее двух строк, включая заголовок. Ячейки заголовка должны содержать строки и должны быть уникальными, а также должны устанавливать данные строки заголовка таблицы перед вызовом функции AddTable. Несколько таблиц координируют области, которые не могут иметь пересечения.

Name: Имя таблицы в том же листе таблицы таблицы должно быть уникальным.

StyleName: Встроенные имена стиля таблицы:

TableStyleLight1 - TableStyleLight21
TableStyleMedium1 - TableStyleMedium28
TableStyleDark1 - TableStyleDark11
Индекс Стиль Индекс Стиль Индекс Стиль
TableStyleLight1 TableStyleLight2
TableStyleLight3 TableStyleLight4 TableStyleLight5
TableStyleLight6 TableStyleLight7 TableStyleLight8
TableStyleLight9 TableStyleLight10 TableStyleLight11
TableStyleLight12 TableStyleLight13 TableStyleLight14
TableStyleLight15 TableStyleLight16 TableStyleLight17
TableStyleLight18 TableStyleLight19 TableStyleLight20
TableStyleLight21 TableStyleMedium1 TableStyleMedium2
TableStyleMedium3 TableStyleMedium4 TableStyleMedium5
TableStyleMedium6 TableStyleMedium7 TableStyleMedium8
TableStyleMedium9 TableStyleMedium10 TableStyleMedium11
TableStyleMedium12 TableStyleMedium13 TableStyleMedium14
TableStyleMedium15 TableStyleMedium16 TableStyleMedium17
TableStyleMedium18 TableStyleMedium19 TableStyleMedium20
TableStyleMedium21 TableStyleMedium22 TableStyleMedium23
TableStyleMedium24 TableStyleMedium25 TableStyleMedium26
TableStyleMedium27 TableStyleMedium28 TableStyleDark1
TableStyleDark2 TableStyleDark3 TableStyleDark4
TableStyleDark5 TableStyleDark6 TableStyleDark7
TableStyleDark8 TableStyleDark9 TableStyleDark10
TableStyleDark11

Получить таблицы

func (f *File) GetTables(sheet string) ([]Table, error)

GetTables предоставляет метод для получения всех таблиц на листе по заданному имени листа.

Удалить таблицу

func (f *File) DeleteTable(name string) error

DeleteTable предоставляет метод удаления таблицы по заданному имени таблицы.

Авто фильтр

func (f *File) AutoFilter(sheet, rangeRef string, opts []AutoFilterOptions) error

AutoFilter предоставляет метод добавления автоматического фильтра в рабочий лист с помощью имени рабочего листа, области координат и настроек. Автофильтр в Excel представляет собой способ фильтрации 2D спектра данных на основе простых критериев.

Пример 1, применяя автоматический фильтр к диапазону ячеек A1:D4 в Sheet1:

Добавить автоматический фильтр

err := f.AutoFilter("Sheet1", "A1:D4", []excelize.AutoFilterOptions{})

Пример 2, данные фильтра в автофильтре:

err := f.AutoFilter("Sheet1", "A1:D4", []excelize.AutoFilterOptions{
    {Column: "B", Expression: "x != blanks"},
})

Column определяет столбцы фильтра в диапазоне автоматического фильтра на основе простых критериев

Недостаточно просто указать условие фильтра. Вы также должны скрыть любые строки, которые не соответствуют условию фильтра. Строки скрыты с помощью метода SetRowVisible(). Excelize не может автоматически фильтровать строки, поскольку это не является частью формата файла.

Установка критериев фильтра для столбца:

Expression определяет условия, доступны следующие операторы для установки критериев фильтра:

==
!=
>
<
>=
<=
and
or

Выражение может содержать один оператор или два оператора, разделенных операторами and и or. Например:

x <  2000
x >  2000
x == 2000
x >  2000 and x <  5000
x == 2000 or  x == 5000

Фильтрация пустых или непустых данных может быть достигнута путем использования значения Бланков или NonBlanks в выражении:

x == Blanks
x == NonBlanks

Office Excel также позволяет выполнять некоторые простые операции сопоставления строк:

x == b*      // начинается с b
x != b*      // не начинается с b
x == *b      // заканчивается буквой b
x != *b      // не заканчивается на b
x == *b*     // содержит b
x != *b*     // не содержит b

Вы также можете использовать * для соответствия любому символу или номеру и ? Для соответствия любому одиночному символу или номеру. Фильтры Excel не поддерживаются никаким другим квантором регулярных выражений. Символы регулярного выражения Excel могут быть экранированы с помощью ~.

Замещающая переменная x в приведенных выше примерах может быть заменена любой простой строкой. Фактическое имя заполнителя игнорируется внутренне, поэтому следующие эквиваленты:

x     < 2000
col   < 2000
Price < 2000

Обновить связанное значение

func (f *File) UpdateLinkedValue() error

UpdateLinkedValue фиксирует связанные значения в электронной таблице, не обновляется в Office Excel 2007 и 2010. Эта функция будет удалять тег значения, когда встречная ячейка имеет связанное значение. Справка https://learn.microsoft.com/en-us/archive/msdn-technet-forums/e16bae1f-6a2c-4325-8013-e989a3479066. Обратите внимание: после открытия XLSX-файла Excel будет обновлять связанное значение и генерировать новое значение и вызывать файл сохранения или нет.

Эффект очистки кеша ячейки в рабочей книге появляется как модификация тега <v>, например кеш ячейки перед очисткой:

<row r="19">
    <c r="B19">
        <f>SUM(Sheet2!D2,Sheet2!D11)</f>
        <v>100</v>
     </c>
</row>

После очистки кеша ячейки:

<row r="19">
    <c r="B19">
        <f>SUM(Sheet2!D2,Sheet2!D11)</f>
    </c>
</row>

Разделить имя ячейки

func SplitCellName(cell string) (string, int, error)

SplitCellName разделяет имя ячейки на имя столбца и номер строки. Например:

excelize.SplitCellName("AK74") // return "AK", 74, nil

Присоединиться к имени ячейки

func JoinCellName(col string, row int) (string, error)

JoinCellName объединяет имя ячейки из имени столбца и номера строки.

Имя столбца в номер

func ColumnNameToNumber(name string) (int, error)

ColumnNameToNumber предоставляет функцию для преобразования имени столбца листа Excel в int. Имя столбца нечувствительно к регистру. Функция возвращает ошибку, если имя столбца неверно. Например:

excelize.ColumnNameToNumber("AK") // returns 37, nil

Номер столбца к имени

func ColumnNumberToName(num int) (string, error)

ColumnNumberToName предоставляет функцию для преобразования целого числа в заголовок столбца листа Excel. Например:

excelize.ColumnNumberToName(37) // returns "AK", nil

Имя ячейки для координат

func CellNameToCoordinates(cell string) (int, int, error)

CellNameToCoordinates преобразует буквенно-цифровое имя ячейки в координаты [X, Y] или возвращает ошибку. Например:

excelize.CellNameToCoordinates("A1") // returns 1, 1, nil
excelize.CellNameToCoordinates("Z3") // returns 26, 3, nil

Координаты на имя ячейки

func CoordinatesToCellName(col, row int, abs ...bool) (string, error)

CoordinatesToCellName преобразует [X, Y] координаты в буквенно-цифровое имя ячейки или возвращает ошибку. Например:

excelize.CoordinatesToCellName(1, 1) // returns "A1", nil
excelize.CoordinatesToCellName(1, 1, true) // returns "$A$1", nil

Создать условный стиль

func (f *File) NewConditionalStyle(style *Style) (int, error)

NewConditionalStyle предоставляет функцию для создания стиля для условного формата по заданному стилю. Параметры такие же, как и функция NewStyle. Обратите внимание, что в цветовом поле используется цветовой код RGB и поддерживается только для установки шрифта, заливок, выравнивания и границ в настоящее время.

Получить условный стиль

func (f *File) GetConditionalStyle(idx int) (*Style, error)

GetConditionalStyle возвращает определение стиля условного формата по указанному индексу стиля.

Установка условного формата

func (f *File) SetConditionalFormat(sheet, rangeRef string, opts []ConditionalFormatOptions) error

SetConditionalFormat предоставляет функцию для создания правила условного форматирования для значения ячейки. Условное форматирование - это функция Office Excel, которая позволяет применять формат к ячейке или диапазону ячеек на основе определенных критериев.

Опция Type является обязательным параметром и не имеет значения по умолчанию. Допустимые значения типов и связанные с ними параметры:

Тип параметры
cell Criteria
Value
MinValue
MaxValue
time_period Criteria
text Criteria
Value
average Criteria
duplicate (none)
unique (none)
top Criteria
Value
bottom Criteria
Value
blanks (none)
no_blanks (none)
errors (none)
no_errors (none)
2_color_scale MinType
MaxType
MinValue
MaxValue
MinColor
MaxColor
3_color_scale MinType
MidType
MaxType
MinValue
MidValue
MaxValue
MinColor
MidColor
MaxColor
data_bar MinType
MaxType
MinValue
MaxValue
BarBorderColor
BarColor
BarDirection
BarOnly
BarSolid
iconSet IconStyle
ReverseIcons
IconsOnly
formula Criteria

Параметр Criteria используется для установки критериев, по которым будут оцениваться данные ячейки. Он не имеет значения по умолчанию. Наиболее распространенные критерии применительно к excelize.ConditionalFormatOptions{Type: "cell"}:

Символ описания текста Символическое представление
between
not between
equal to ==
not equal to !=
greater than >
less than <
greater than or equal to >=
less than or equal to <=

Вы можете использовать строки текстового описания Excel в первом столбце выше или более распространенные символические альтернативы.

Дополнительные критерии, которые относятся к другим типам условного формата, приведены в соответствующих разделах ниже.

Value: значение обычно используется вместе с параметром Criteria для установки правила, по которому будут оцениваться данные ячейки:

err := f.SetConditionalFormat("Sheet1", "D1:D10",
    []excelize.ConditionalFormatOptions{
        {
            Type:     "cell",
            Criteria: ">",
            Format:   &format,
            Value:    "6",
        },
    },
)

Свойство Value также может быть ссылкой на ячейку:

err := f.SetConditionalFormat("Sheet1", "D1:D10",
    []excelize.ConditionalFormatOptions{
        {
            Type:     "cell",
            Criteria: ">",
            Format:   &format,
            Value:    "$C$1",
        },
    },
)

Тип: Format - The Format параметр используется для указания формата, который будет применен к клетке, когда условное форматирование критерия. Формат создается с помощью метода NewConditionalStyle() таким же образом, как и форматы ячеек:

format, err := f.NewConditionalStyle(
    &excelize.Style{
        Font: &excelize.Font{Color: "9A0511"},
        Fill: excelize.Fill{
            Type: "pattern", Color: []string{"FEC7CE"}, Pattern: 1,
        },
    },
)
if err != nil {
    fmt.Println(err)
}
err = f.SetConditionalFormat("Sheet1", "D1:D10",
    []excelize.ConditionalFormatOptions{
        {Type: "cell", Criteria: ">", Format: &format, Value: "6"},
    },
)

Примечание. В Excel условный формат накладывается поверх существующего формата ячейки, и не все свойства формата ячейки могут быть изменены. Свойства, которые не могут быть изменены в условном формате имя шрифта, размер шрифта, верхние и нижние индексы, диагональные границы, все свойства выравнивания и все защитные свойства.

Excel указывает некоторые стандартные форматы, которые будут использоваться с условным форматированием. Они могут быть реплицированы с использованием следующих форматов excelize:

// Розовый формат для плохих условных.
format1, err := f.NewConditionalStyle(
    &excelize.Style{
        Font: &excelize.Font{Color: "9A0511"},
        Fill: excelize.Fill{
            Type: "pattern", Color: []string{"FEC7CE"}, Pattern: 1,
        },
    },
)

// Светло-желтый формат для нейтральных условных.
format2, err := f.NewConditionalStyle(
    &excelize.Style{
        Font: &excelize.Font{Color: "9B5713"},
        Fill: excelize.Fill{
            Type: "pattern", Color: []string{"FEEAA0"}, Pattern: 1,
        },
    },
)

// Светло-зеленый формат для хорошего условного.
format3, err := f.NewConditionalStyle(
    &excelize.Style{
        Font: &excelize.Font{Color: "09600B"},
        Fill: excelize.Fill{
            Type: "pattern", Color: []string{"C7EECF"}, Pattern: 1,
        },
    },
)

Тип: MinValue - Минимальный параметр используется для установки нижнего предельного значения, когда Criteria либо betweenили not between.

// Выделяйте правила ячеек: между...
err := f.SetConditionalFormat("Sheet1", "A1:A10",
    []excelize.ConditionalFormatOptions{
        {
            Type:     "cell",
            Criteria: "between",
            Format:   &format,
            MinValue: "6",
            MaxValue: "8",
        },
    },
)

Тип: MaxValue - MaxValue параметр используется для задания верхнего предельного значения, когда критерии являются либо between или not between. См. Предыдущий пример.

Тип: average - average типа используются для указания «Average» стиль условного формата Office Excel в:

// Правила сверху / снизу: выше среднего...
err := f.SetConditionalFormat("Sheet1", "A1:A10",
    []excelize.ConditionalFormatOptions{
        {
            Type:         "average",
            Criteria:     "=",
            Format:       &format1,
            AboveAverage: true,
        },
    },
)

// Правила сверху / снизу: ниже среднего...
err := f.SetConditionalFormat("Sheet1", "B1:B10",
    []excelize.ConditionalFormatOptions{
        {
            Type:         "average",
            Criteria:     "=",
            Format:       &format2,
            AboveAverage: false,
        },
    },
)

Тип: duplicate - Тип duplicate используется для выделения повторяющихся ячеек в диапазоне:

// Выделять правила ячеек: повторяющиеся значения...
err := f.SetConditionalFormat("Sheet1", "A1:A10",
    []excelize.ConditionalFormatOptions{
        {Type: "duplicate", Criteria: "=", Format: &format},
    },
)

Тип: unique - Уникальный тип используется для выделения уникальных ячеек в диапазоне:

// Выделить правила ячеек: не равно...
err := f.SetConditionalFormat("Sheet1", "A1:A10",
    []excelize.ConditionalFormatOptions{
        {Type: "unique", Criteria: "=", Format: &format},
    },
)

Тип: top - Тип top используется для указания верхних n значений по числу или проценту в диапазоне:

// Верх / Низ правила: Топ 10.
err := f.SetConditionalFormat("Sheet1", "H1:H10",
    []excelize.ConditionalFormatOptions{
        {
            Type:     "top",
            Criteria: "=",
            Format:   &format,
            Value:    "6",
        },
    },
)

Критерии могут использоваться, чтобы указать, что требуется процентное условие:

err := f.SetConditionalFormat("Sheet1", "A1:A10",
    []excelize.ConditionalFormatOptions{
        {
            Type:     "top",
            Criteria: "=",
            Format:   &format,
            Value:    "6",
            Percent:  true,
        },
    },
)

Тип: 2_color_scale - Тип 2_color_scale используется для указания условного формата стиля Excel «2 Цветные весы»:

// Цветные весы: 2 цвета.
err := f.SetConditionalFormat("Sheet1", "A1:A10",
    []excelize.ConditionalFormatOptions{
        {
            Type:     "2_color_scale",
            Criteria: "=",
            MinType:  "min",
            MaxType:  "max",
            MinColor: "#F8696B",
            MaxColor: "#63BE7B",
        },
    },
)

Этот условный тип может быть изменен с помощью MinType, MaxType, MinValue, MaxValue, MinColor и MaxColor, Смотри ниже.

Тип: 3_color_scale - Тип 3_color_scale используется для указания условного формата стиля Excel «3 Цветные весы»:

// Цветные весы: 3 цвета.
err := f.SetConditionalFormat("Sheet1", "A1:A10",
    []excelize.ConditionalFormatOptions{
        {
            Type:     "3_color_scale",
            Criteria: "=",
            MinType:  "min",
            MidType:  "percentile",
            MaxType:  "max",
            MinColor: "#F8696B",
            MidColor: "#FFEB84",
            MaxColor: "#63BE7B",
        },
    },
)

Этот условный тип может быть изменен с помощью MinType, MidType, MaxType, MinValue, MidValue, MaxValue, MinColor, MidColor и MaxColor, Смотри ниже.

Тип: data_bar - Тип data_bar используется для указания условного формата стиля Excel «Панель данных».

MinType - Тип MinType и MaxType свойства доступны, когда тип условного форматирования 2_color_scale, 3_color_scale или data_bar. Тип MidType доступен для 3_color_scale. Свойства используются следующим образом:

// Панель данных: Градиентная заливка.
err := f.SetConditionalFormat("Sheet1", "K1:K10",
    []excelize.ConditionalFormatOptions{
        {
            Type:     "data_bar",
            Criteria: "=",
            MinType:  "min",
            MaxType:  "max",
            BarColor: "#638EC6",
        },
    },
)

Доступные типы min/mid/max:

Параметр Объяснение
min Минимальное значение (только для MinType)
num числовой
percent процент
percentile процентиль
formula формула
max Максимум (только для MaxType)

MidType - Используется для 3_color_scale. То же, что и MinType, см. Выше.

MaxType - То же, что и MinType, см. Выше.

MinValue - В MinValue и MaxValue свойства доступны при условный тип форматирования 2_color_scale, 3_color_scale или data_bar. MidValue доступен для 3_color_scale.

MidValue - Используется для 3_color_scale. То же, что и MinValue, см. Выше.

MaxValue - То же, что и MinValue, см. Выше.

MinColor - The MinColor and MaxColor properties are available when the conditional formatting type is 2_color_scale, 3_color_scale or data_bar. The MidColor is available for 3_color_scale. The properties are used as follows:

// Цветные весы: 3 цвета.
err := f.SetConditionalFormat("Sheet1", "B1:B10",
    []excelize.ConditionalFormatOptions{
        {
            Type:     "3_color_scale",
            Criteria: "=",
            MinType:  "min",
            MidType:  "percentile",
            MaxType:  "max",
            MinColor: "#F8696B",
            MidColor: "#FFEB84",
            MaxColor: "#63BE7B",
        },
    },
)

MidColor - Используется для 3_color_scale. То же, что и MinColor, см. Выше.

MaxColor - То же, что и MinColor, см. Выше.

BarColor - Используется для data_bar. То же, что и MinColor, см. Выше.

BarBorderColor - Используется для установки цвета линии границы гистограммы, это видно только в Excel 2010 и более поздних версиях.

BarDirection - Используется для установки направления гистограмм. Доступные варианты:

Значение Пояснение
context Направление панели данных задается приложением для работы с электронными таблицами в зависимости от контекста отображаемых данных.
leftToRight Направление строки данных справа налево.
rightToLeft Направление панели данных слева направо.

BarOnly - Используется для set отображает данные столбца, но не данные в ячейках.

BarSolid - Используется для включения сплошной (неградиентной) заливки гистограмм. Это видно только в Excel 2010 и более поздних версиях.

IconStyle - Доступные варианты:

Значение
3Arrows
3ArrowsGray
3Flags
3Signs
3Symbols
3Symbols2
3TrafficLights1
3TrafficLights2
4Arrows
4ArrowsGray
4Rating
4RedToBlack
4TrafficLights
5Arrows
5ArrowsGray
5Quarters
5Rating

ReverseIcons - Используется для набора перевернутых наборов значков.

IconsOnly - Используется для множества, отображаемого без значения ячейки.

StopIfTrue - Используется для установки функции «остановить, если истинно» правила условного форматирования, когда к ячейке или диапазону ячеек применяется более одного правила. Когда этот параметр установлен, последующие правила не оцениваются, если текущее правило истинно.

Например, выделите наибольшее и наименьшее значения в диапазоне ячеек A1:D4, установив условное форматирование для Sheet1:

Установить условное форматирование в диапазоне ячеек

func main() {
    f := excelize.NewFile()
    defer func() {
        if err := f.Close(); err != nil {
            fmt.Println(err)
        }
    }()
    for r := 1; r <= 4; r++ {
        row := []int{
            rand.Intn(100), rand.Intn(100), rand.Intn(100), rand.Intn(100),
        }
        if err := f.SetSheetRow("Sheet1", fmt.Sprintf("A%d", r), &row); err != nil {
            fmt.Println(err)
            return
        }
    }
    red, err := f.NewConditionalStyle(
        &excelize.Style{
            Font: &excelize.Font{
                Color: "9A0511",
            },
            Fill: excelize.Fill{
                Type:    "pattern",
                Color:   []string{"FEC7CE"},
                Pattern: 1,
            },
        },
    )
    if err != nil {
        fmt.Println(err)
        return
    }
    if err := f.SetConditionalFormat("Sheet1", "A1:D4",
        []excelize.ConditionalFormatOptions{
            {
                Type:     "bottom",
                Criteria: "=",
                Value:    "1",
                Format:   &red,
            },
        },
    ); err != nil {
        fmt.Println(err)
        return
    }
    green, err := f.NewConditionalStyle(
        &excelize.Style{
            Font: &excelize.Font{
                Color: "09600B",
            },
            Fill: excelize.Fill{
                Type:    "pattern",
                Color:   []string{"C7EECF"},
                Pattern: 1,
            },
        },
    )
    if err != nil {
        fmt.Println(err)
        return
    }
    if err := f.SetConditionalFormat("Sheet1", "A1:D4",
        []excelize.ConditionalFormatOptions{
            {
                Type:     "top",
                Criteria: "=",
                Value:    "1",
                Format:   &green,
            },
        },
    ); err != nil {
        fmt.Println(err)
        return
    }
    if err := f.SaveAs("Book1.xlsx"); err != nil {
        fmt.Println(err)
        return
    }
}

Получить условный формат

func (f *File) GetConditionalFormats(sheet string) (map[string][]ConditionalFormatOptions, error)

Метод GetConditionalFormats возвращает параметры условного формата по заданному имени листа.

Удалить условный формат

func (f *File) UnsetConditionalFormat(sheet, rangeRef string) error

UnsetConditionalFormat предоставляет функцию для сброса условного формата по заданному имени и диапазону листа.

Настройка панелей

func (f *File) SetPanes(sheet string, panes *Panes) error

SetPanes предоставляет функцию для создания и удаления стоп-кадр и разделения панелей с помощью заданного имени листа и формата панелей.

ActivePane определяет активную панель. Возможные значения для этого атрибута определены в следующей таблице:

Значение перечисления Описание
bottomLeft (Bottom Left Pane) Нижняя левая панель, когда применяются как вертикальные, так и горизонтальные расщепления.

Это значение также используется, когда применяется только горизонтальный раскол, разделяя панель на верхнюю и нижнюю области. В этом случае это значение указывает нижнюю панель.
bottomRight (Bottom Right Pane) Нижняя правая панель, когда применяются как вертикальные, так и горизонтальные расщепления.
topLeft (Top Left Pane) Верхняя левая панель, когда применяются как вертикальные, так и горизонтальные расщепления.

Это значение также используется, когда применяется только горизонтальное разделение, разделяя панель на верхнюю и нижнюю области. В этом случае это значение указывает верхнюю панель.

Это значение также используется, когда применяется только вертикальный раскол, разделяющий панель на правую и левую области. В этом случае это значение указывает левую панель.
topRight (Top Right Pane) Верхняя правая панель, когда применяются как вертикальные, так и горизонтальные расщепления.

Это значение также используется, когда применяется только вертикальное разделение, разделяя панель на правую и левую области. В этом случае это значение указывает правильную панель.

Тип состояния панели ограничен значениями, которые в настоящее время перечислены в следующей таблице:

Значение перечисления Описание
frozen (Frozen) Панели замораживаются, но не разрываются. В этом состоянии, когда панели снова разморожены, появляется одно окно без разделения.

В этом состоянии разделительные панели не регулируются.
split (Split) Панели разделены, но не заморожены. В этом состоянии разделительные полосы настраиваются пользователем.

XSplit - Горизонтальное положение раскола в 1/20 точки; 0 (ноль), если нет. Если панель заморожена, это значение указывает количество столбцов, отображаемых в верхней панели.

YSplit - Вертикальное положение раскола в 1/20 точки; 0 (ноль), если нет. Если панель заморожена, это значение указывает количество строк, видимых на левой панели. Возможные значения для этого атрибута определяются двойным типом данных W3C XML Schema.

TopLeftCell - Расположение верхней левой части видимой ячейки в нижней правой панели (когда в режиме «Влево-Вправо»).

SQRef - Диапазон выбора. Может быть несмежным набором диапазонов.

Пример 1: зафиксировать столбец A в Sheet1 и установить активную ячейку на Sheet1!K16:

Замороженная колонна

err := f.SetPanes("Sheet1", &excelize.Panes{
    Freeze:      true,
    XSplit:      1,
    TopLeftCell: "B1",
    ActivePane:  "topRight",
    Selection: []excelize.Selection{
        {SQRef: "K16", ActiveCell: "K16", Pane: "topRight"},
    },
})

Пример 2: заморозить строки с 1 по 9 в Листе 1 и установить диапазоны активных ячеек на Sheet1!A11:XFD11:

Зафиксировать столбцы и установить диапазоны активных ячеек

err := f.SetPanes("Sheet1", &excelize.Panes{
    Freeze:      true,
    YSplit:      9,
    TopLeftCell: "A34",
    ActivePane:  "bottomLeft",
    Selection: []excelize.Selection{
        {SQRef: "A11:XFD11", ActiveCell: "A11", Pane: "bottomLeft"},
    },
})

Пример 3: создать разделенные панели в Sheet1 и установить активную ячейку на Sheet1!J60:

Создание разделенных стекол

err := f.SetPanes("Sheet1", &excelize.Panes{
    Split:       true,
    XSplit:      3270,
    YSplit:      1800,
    TopLeftCell: "N57",
    ActivePane:  "bottomLeft",
    Selection: []excelize.Selection{
        {SQRef: "I36", ActiveCell: "I36"},
        {SQRef: "G33", ActiveCell: "G33", Pane: "topRight"},
        {SQRef: "J60", ActiveCell: "J60", Pane: "bottomLeft"},
        {SQRef: "O60", ActiveCell: "O60", Pane: "bottomRight"},
    },
})

Пример 4, разморозить и удалить все панели на Sheet1:

err := f.SetPanes("Sheet1", &excelize.Panes{Freeze: false, Split: false})

Получение панелей

func (f *File) GetPanes(sheet string) (Panes, error)

GetPanes предоставляет функцию для получения закрепления областей, разделенных областей и представлений рабочего листа по заданному имени рабочего листа.

Цвет

func (f *File) GetBaseColor(hexColor string, indexedColor int, themeColor *int) string

GetBaseColor возвращает предпочтительный шестнадцатеричный код цвета, предоставляя шестнадцатеричный код цвета, индексированный цвет и цвет темы.

func ThemeColor(baseColor string, tint float64) string

ThemeColor применил цвет со значением оттенка.

Для текста в электронной таблице существует три типа цветов: шестнадцатеричный цвет, индексированный цвет и цвет темы. Приоритет этих цветов заключается в том, что шестнадцатеричный цвет имеет приоритет над цветом темы, а цвет темы имеет приоритет над индексированным цветом. Кроме того, цвет также поддерживает применение значения оттенка на основе шестнадцатеричного цвета, поэтому нам нужно использовать функцию ThemeColor, чтобы применить оттенок для базового цвета и получить рассчитанное шестнадцатеричное значение цвета. Например:

package main

import (
    "fmt"

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

func main() {
    f, err := excelize.OpenFile("Book1.xlsx")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer func() {
        if err := f.Close(); err != nil {
            fmt.Println(err)
        }
    }()
    runs, err := f.GetCellRichText("Sheet1", "A1")
    if err != nil {
        fmt.Println(err)
        return
    }
    for _, run := range runs {
        var hexColor string
        if run.Font != nil {
            baseColor := f.GetBaseColor(run.Font.Color, run.Font.ColorIndexed, run.Font.ColorTheme)
            hexColor = strings.TrimPrefix(excelize.ThemeColor(baseColor, run.Font.ColorTint), "FF")
        }
        fmt.Printf("text: %s, color: %s\r\n", run.Text, hexColor)
    }
}

Преобразование RGB в HSL

func RGBToHSL(r, g, b uint8) (h, s, l float64)

RGBToHSL преобразует тройку RGB в тройку HSL.

Конвертировать HSL в RGB

func HSLToRGB(h, s, l float64) (r, g, b uint8)

HSLToRGB преобразует тройку HSL в тройку RGB.

Файловый писатель

Write

func (f *File) Write(w io.Writer, opts ...Options) error

Write предоставляет функцию для записи в io.Writer.

WriteTo

func (f *File) WriteTo(w io.Writer, opts ...Options) (int64, error)

WriteTo реализует io.WriterTo для записи файла.

WriteToBuffer

func (f *File) WriteToBuffer() (*bytes.Buffer, error)

WriteToBuffer предоставляет функцию для получения *bytes.Buffer из сохраненного файла.

Добавить проект VBA

func (f *File) AddVBAProject(file []byte) error

AddVBAProject предоставляет метод добавления файла vbaProject.bin, который содержит функции и/или макросы. Расширение файла должно быть .xlsm или .xltm. Например:

codeName := "Sheet1"
if err := f.SetSheetProps("Sheet1", &excelize.SheetPropsOptions{
    CodeName: &codeName,
}); err != nil {
    fmt.Println(err)
    return
}
file, err := os.ReadFile("vbaProject.bin")
if err != nil {
    fmt.Println(err)
    return
}
if err := f.AddVBAProject(file); err != nil {
    fmt.Println(err)
    return
}
if err := f.SaveAs("macros.xlsm"); err != nil {
    fmt.Println(err)
    return
}

Преобразование даты Excel в то время

func ExcelDateToTime(excelDate float64, use1904Format bool) (time.Time, error)

ExcelDateToTime конвертирует представление даты в формате float в значение time.Time.

Транскодер персонажа

func (f *File) CharsetTranscoder(fn charsetTranscoderFn) *File

CharsetTranscoder Устанавливает пользовательскую функцию транскодера кодовой страницы для открытого XLSX из кодировки не UTF-8.

results matching ""

    No results matching ""