Функция инструмента
Добавить таблицу
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.