Рабочий лист
Установить видимость столбца
func (f *File) SetColVisible(sheet, col string, visible bool) error
Установить видимость указанного столбца на указанном рабочем листе. Эта функция поддерживает параллельные операции. Например, чтобы скрыть столбец D
на рабочем листе с именем Лист1
:
err := f.SetColVisible("Лист1", "D", false)
Скрыть столбцы D
по F
на рабочем листе с именем Лист1
:
err := f.SetColVisible("Лист1", "D:F", false)
Установить ширину столбца
func (f *File) SetColWidth(sheet, startCol, endCol string, width float64) error
Установить ширину одного или нескольких столбцов на указанном рабочем листе, диапазон столбцов и значение ширины. Эта функция поддерживает параллельные операции. Например, чтобы установить ширину столбцов A
по H
на рабочем листе с именем Лист1
равной 20
:
err := f.SetColWidth("Лист1", "A", "H", 20)
Установить высоту строки
func (f *File) SetRowHeight(sheet string, row int, height float64) error
Установить высоту одной строки на указанном рабочем листе, номер строки и значение высоты. Например, чтобы установить высоту первой строки на рабочем листе с именем Лист1
равной 50
:
err := f.SetRowHeight("Лист1", 1, 50)
Установить видимость строки
func (f *File) SetRowVisible(sheet string, row int, visible bool) error
Установить видимость указанной строки на указанном рабочем листе. Например, чтобы скрыть вторую строку на рабочем листе с именем Лист1
:
err := f.SetRowVisible("Лист1", 2, false)
Получить имя рабочего листа
func (f *File) GetSheetName(index int) string
Получить имя рабочего листа по указанному индексу. Если рабочий лист не существует, будет возвращена пустая строка.
Получить видимость столбца
func (f *File) GetColVisible(sheet, column string) (bool, error)
Получить видимость указанного столбца на рабочем листе по указанному имени рабочего листа и имени столбца. Возвращаемое значение true
указывает на видимость, а false
указывает на невидимость. Эта функция поддерживает параллельные операции. Например, чтобы получить видимость столбца D
на рабочем листе с именем Лист1
:
visible, err := f.GetColVisible("Лист1", "D")
Получить ширину столбца
func (f *File) GetColWidth(sheet, col string) (float64, error)
Получить ширину указанного столбца на рабочем листе по указанному имени рабочего листа и имени столбца. Эта функция поддерживает параллельные операции.
Получить высоту строки
func (f *File) GetRowHeight(sheet string, row int) (float64, error)
Получить высоту указанной строки на рабочем листе по указанному имени рабочего листа и номеру строки. Например, чтобы получить высоту первой строки на рабочем листе с именем Лист1
:
height, err := f.GetRowHeight("Лист1", 1)
Получить видимость строки
func (f *File) GetRowVisible(sheet string, row int) (bool, error)
Получить видимость указанной строки на рабочем листе по указанному имени рабочего листа и номеру строки. Например, чтобы получить видимость второй строки на рабочем листе с именем Лист1
:
visible, err := f.GetRowVisible("Лист1", 2)
Получить индекс рабочего листа
func (f *File) GetSheetIndex(sheet string) (int, error)
Получить индекс указанного рабочего листа по его имени. Вернуть -1
, если рабочий лист не существует. Полученный индекс может быть использован в качестве параметра при вызове функции SetActiveSheet()
, чтобы установить рабочий лист по умолчанию книги.
Получить отображение листов
func (f *File) GetSheetMap() map[int]string
Получить отображение всех листов, листов диаграмм и диалоговых листов в книге, представленных ID и именем.
f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
return
}
defer func() {
if err := f.Close(); err != nil {
fmt.Println(err)
}
}()
for index, name := range f.GetSheetMap() {
fmt.Println(index, name)
}
Получить список листов
func (f *File) GetSheetList() []string
Получить список листов, включая листы, листы диаграмм и диалоговые листы в том же порядке, в котором они появляются в книге.
Установить имя листа
func (f *File) SetSheetName(source, target string) error
Переименовать лист на основе заданных старого и нового имен листа. Имя листа может содержать до 31 символа. Данная функция изменяет только имя листа и не обновляет формулы, связанные с ячейками или именами листов в ссылках. Поэтому использование этой функции для переименования листа может вызвать ошибки формулы или проблемы с ссылками.
Вставить столбцы
func (f *File) InsertCols(sheet, col string, n int) error
Вставить пустые столбцы перед указанным столбцом на основе заданного имени листа, имени столбца и количества вставляемых столбцов. Например, вставить 2 пустых столбца перед столбцом C
на листе с именем Sheet1
:
err := f.InsertCols("Sheet1", "C", 2)
Вставить строки
func (f *File) InsertRows(sheet string, row, n int) error
Вставить пустые строки перед указанной строкой на основе заданного имени листа, номера строки и количества вставляемых строк. Например, вставить 2 пустые строки перед 3-ей строкой на листе с именем Sheet1
:
err := f.InsertRows("Sheet1", 3, 2)
Дублировать и скопировать строки
func (f *File) DuplicateRow(sheet string, row int) error
Добавить копию после указанной номером строки на основе заданного имени листа. Например, скопировать 2-ю строку листа с именем Sheet1
в 3-ю строку:
err := f.DuplicateRow("Sheet1", 2)
Будьте осторожны при использовании этого метода, так как он повлияет на все изменения исходных формул, диаграмм и других ссылочных ресурсов на листе. Если на листе есть какие-либо ссылочные значения, открытие его с использованием приложения Excel после использования этого метода может вызвать ошибки в файле. excelize в настоящее время поддерживает обновления только частичных ссылок на листе.
Дублировать строку
func (f *File) DuplicateRowTo(sheet string, row, row2 int) error
Дублировать строку после указанной строки на основе заданного имени листа и номера строки. Например, дублировать вторую строку листа с именем Sheet1
после седьмой строки:
err := f.DuplicateRowTo("Sheet1", 2, 7)
Пожалуйста, используйте этот метод осторожно, так как он повлияет на все изменения исходных формул, диаграмм и других ресурсов, на которые есть ссылки, на листе. Если на листе есть какие-либо ссылочные значения, открытие его с использованием приложения Excel после использования этого метода может вызвать ошибки в файле. excelize в настоящее время поддерживает обновления только частичных ссылок на листе.
Установить уровень контура строки
func (f *File) SetRowOutlineLevel(sheet string, row int, level uint8) error
Создать группу на основе заданного имени листа, номера строки и параметра уровня контура. Например, создать группу уровня 1 на второй строке листа с именем Sheet1
.
err := f.SetRowOutlineLevel("Sheet1", 2, 1)
Установить уровень контура столбца
func (f *File) SetColOutlineLevel(sheet, col string, level uint8) error
Создает группу на основе указанного имени листа, имени столбца и параметра уровня контура. Например, создает группу уровня 2 в столбце D
на листе с именем Sheet1
.
err := f.SetColOutlineLevel("Sheet1", "D", 2)
Получить уровень контура строки
func (f *File) GetRowOutlineLevel(sheet string, row int) (uint8, error)
Получить уровень контура на основе указанного имени листа и номера строки. Например, получить уровень контура второй строки на листе с именем Sheet1
.
level, err := f.GetRowOutlineLevel("Sheet1", 2)
Получить уровень контура столбца
func (f *File) GetColOutlineLevel(sheet, col string) (uint8, error)
Получить уровень контура на основе указанного имени листа и имени столбца. Например, получить уровень контура столбца D
на листе с именем Sheet1
.
level, err := f.GetColOutlineLevel("Sheet1", "D")
Итератор столбцов
func (f *File) Cols(sheet string) (*Cols, error)
Получает итератор столбцов указанного листа на основе указанного имени листа. Эта функция безопасна для конкурентного доступа. Используйте итератор столбцов для последовательного чтения и обхода ячеек:
cols, err := f.Cols("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for cols.Next() {
col, err := cols.Rows()
if err != nil {
fmt.Println(err)
}
for _, rowCell := range col {
fmt.Print(rowCell, "\t")
}
fmt.Println()
}
Итератор столбцов - Получение значений одного столбца
func (cols *Cols) Rows(opts ...Options) ([]string, error)
Возвращает значения всех строк в текущем столбце.
Итератор столбцов - Операция обхода
func (cols *Cols) Next() bool
Возвращает true
, если в следующем столбце есть значения.
Итератор столбцов - Обработка ошибок
func (cols *Cols) Error() error
Возвращает ошибку при возникновении ошибки при поиске следующего столбца.
Итератор строк
func (f *File) Rows(sheet string) (*Rows, error)
Получает итератор строк для указанного имени листа. Эта функция безопасна для конкурентного доступа. Используйте итератор строк для обхода ячеек при последовательном чтении:
rows, err := f.Rows("Sheet1")
if err != nil {
fmt.Println(err)
return
}
for rows.Next() {
row, err := rows.Columns()
if err != nil {
fmt.Println(err)
}
for _, colCell := range row {
fmt.Print(colCell, "\t")
}
fmt.Println()
}
if err = rows.Close(); err != nil {
fmt.Println(err)
}
Итератор строк - Операция с одной строкой
func (rows *Rows) Columns(opts ...Options) ([]string, error)
Эта функция выполняет последовательное чтение листа построчно, возвращая значения каждой ячейки в текущей строке, без пропуска действительных пустых строк в конце листа.
Итератор строк - Операция обхода
func (rows *Rows) Next() bool
Возвращает true
, если в следующей строке есть значение.
Итератор строк - Обработка ошибок
func (rows *Rows) Error() error
Возвращает error
при возникновении ошибки во время поиска следующей строки.
Итератор строк - Получение свойств строки
func (rows *Rows) GetRowOpts() RowOpts
Возвращает свойства текущей строки, такие как высота строки, видимость и идентификатор стиля.
Итератор строк - Закрытие потока данных
func (rows *Rows) Close() error
Закрывает поток данных и очищает любой системный дисковый кэш, который может быть создан при открытии листа.
Поиск в листе
func (f *File) SearchSheet(sheet, value string, reg ...bool) ([]string, error)
Получение координат на основе указанного имени листа, значения ячейки или регулярного выражения. Эта функция поддерживает только полное совпадение строк и чисел, не поддерживает вычисленные результаты, форматированные числа и условные запросы. Если результат поиска находится в объединенной ячейке, будут возвращены координаты верхнего левого угла объединенной области.
Например, найдите координаты значения 100
на листе с именем Sheet1
:
result, err := f.SearchSheet("Sheet1", "100")
Например, найдите координаты числовых значений в диапазоне 0-9
на листе с именем Sheet1
:
result, err := f.SearchSheet("Sheet1", "[0-9]", true)
Защита листа
func (f *File) ProtectSheet(sheet string, opts *SheetProtectionOptions) error
Предотвращение случайного или намеренного изменения, перемещения или удаления данных на листе другими пользователями. Необязательное поле AlgorithmName
поддерживает указание хэш-алгоритма XOR, MD4, MD5, SHA-1, SHA-256, SHA-384 или SHA-512. Если хэш-алгоритм не указан, по умолчанию будет использоваться алгоритм XOR. Например, установка защиты паролем для листа с именем Sheet1
, но с разрешением заблокированного выбора ячеек, разблокированного выбора ячеек и сценариев редактирования:
err := f.ProtectSheet("Sheet1", &excelize.SheetProtectionOptions{
AlgorithmName: "SHA-512",
Password: "password",
SelectLockedCells: true,
SelectUnlockedCells: true,
EditScenarios: true,
})
SheetProtectionOptions определяет параметры настроек для защиты листа.
type SheetProtectionOptions struct {
AlgorithmName string
AutoFilter bool
DeleteColumns bool
DeleteRows bool
EditObjects bool
EditScenarios bool
FormatCells bool
FormatColumns bool
FormatRows bool
InsertColumns bool
InsertHyperlinks bool
InsertRows bool
Password string
PivotTables bool
SelectLockedCells bool
SelectUnlockedCells bool
Sort bool
}
Снять защиту с листа
func (f *File) UnprotectSheet(sheet string, password ...string) error
Снять защиту с листа по указанному имени листа и указать второй необязательный параметр пароля для отмены защиты листа по проверке пароля.
Удалить столбец
func (f *File) RemoveCol(sheet, col string) error
Удалить указанный столбец по указанному имени листа и имени столбца. Например, удалить столбец C
на листе с именем Sheet1
:
err := f.RemoveCol("Sheet1", "C")
Пожалуйста, используйте этот метод осторожно, поскольку это повлияет на все изменения исходной формулы, диаграммы и другие ссылочные ресурсы на листе. Если на листе есть ссылочные значения, использование этого метода может вызвать ошибки файла при открытии в приложении Excel после использования. В настоящее время Excelize поддерживает только частичное обновление ссылочных значений на листе.
Удалить строку
func (f *File) RemoveRow(sheet string, row int) error
Удалить указанную строку по указанному имени листа и номеру строки. Например, удалить 3-ю строку на листе с именем Sheet1
:
err := f.RemoveRow("Sheet1", 3)
Пожалуйста, используйте этот метод осторожно, поскольку это повлияет на все изменения исходной формулы, диаграммы и другие ссылочные ресурсы на листе. Если на листе есть ссылочные значения, использование этого метода может вызвать ошибки файла при открытии в приложении Excel после использования. В настоящее время Excelize поддерживает только частичное обновление ссылочных значений на листе.
Присвоение значений по столбцу
func (f *File) SetSheetCol(sheet, cell string, slice interface{}) error
Присвоение значений по столбцу на указанном имени листа, начальных координатах и ссылке типа slice
. Например, присвоение значений по столбцу на столбец B
листа с именем Sheet1
, с ячейкой B6
в качестве начальной координаты:
err := f.SetSheetCol("Sheet1", "B6", &[]interface{}{"1", nil, 2})
Присвоить по строке
func (f *File) SetSheetRow(sheet, cell string, slice interface{}) error
Присваивает значения по строке на основе указанного имени листа, начальных координат и ссылки на тип slice
. Эта функция безопасна для параллельного выполнения. Например, на 6-й строке листа с именем Sheet1
значения могут быть присвоены по строке, начиная с ячейки B6
:
err := f.SetSheetRow("Sheet1", "B6", &[]interface{}{"1", nil, 2})
Вставить разрыв страницы
func (f *File) InsertPageBreak(sheet, cell string) error
Вставляет разрыв страницы на основе указанного имени листа и координат ячейки. Разрывы страниц - это разделительные линии, разделяющие лист на отдельные страницы для печати.
Удалить разрыв страницы
func (f *File) RemovePageBreak(sheet, cell string) error
Удаляет разрыв страницы на основе указанного имени листа и координат ячейки.
Установить размер листа
func (f *File) SetSheetDimension(sheet string, rangeRef string) error
Устанавливает или удаляет используемую область листа на основе указанного имени листа и координат ячейки или диапазона координат ячеек. Используемые ячейки включают ячейки с формулами, текстовое содержимое и форматирование ячеек, например, A1:D5
. Когда указанный диапазон координат ячеек является пустой строкой, он удалит используемую область листа.
Получить размер листа
func (f *File) GetSheetDimension(sheet string) (string, error)
Получает используемую область указанного листа на основе указанного имени листа.