Рабочая книга

Options определяет параметры для чтения и записи электронных таблиц.

type Options struct {
    MaxCalcIterations uint
    Password          string
    RawCellValue      bool
    UnzipSizeLimit    int64
    UnzipXMLSizeLimit int64
    ShortDatePattern  string
    LongDatePattern   string
    LongTimePattern   string
    CultureInfo       CultureName
}

MaxCalcIterations используется для указания максимального количества итераций при вычислении формул; значение по умолчанию - 0.

Password используется для указания пароля для открытия и сохранения рабочей книги в виде обычного текста; значение по умолчанию - пустое.

RawCellValue используется для указания, нужно ли извлекать исходное значение при чтении значений ячеек; значение по умолчанию - false (применяется числовой формат).

UnzipSizeLimit используется для указания размера ограничения (в байтах) для разархивации при открытии электронного таблицы, который должен быть больше или равен UnzipXMLSizeLimit; значение по умолчанию - 16 ГБ.

UnzipXMLSizeLimit используется для указания лимита памяти (в байтах) при разархивации каждого рабочего листа и общей таблицы строк, и если размер превышает это значение, файл XML рабочего листа будет разархивирован во временную директорию системы. Это значение должно быть меньше или равно UnzipSizeLimit; значение по умолчанию - 16 МБ.

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

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

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

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

Создание

func NewFile(opts ...Options) *File

Используйте NewFile для создания новой электронной книги Excel, которая по умолчанию будет содержать рабочий лист с именем Sheet1.

Открытие

func OpenFile(filename string, opts ...Options) (*File, error)

Используйте OpenFile для открытия существующего документа Excel. Например, откройте электронный документ с защитой паролем:

f, err := excelize.OpenFile("Book1.xlsx", excelize.Options{Password: "password"})
if err != nil {
    return
}

Используйте Close() для закрытия открытой рабочей книги.

Открытие потока данных

func OpenReader(r io.Reader, opts ...Options) (*File, error)

OpenReader читает данные из io.Reader.

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

package main

import (
    "fmt"
    "net/http"

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

func process(w http.ResponseWriter, req *http.Request) {
    file, _, err := req.FormFile("file")
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    defer file.Close()
    f, err := excelize.OpenReader(file)
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    f.Path = "Book1.xlsx"
    f.NewSheet("NewSheet")
    w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s", f.Path))
    w.Header().Set("Content-Type", req.Header.Get("Content-Type"))
    if err := f.Write(w); err != nil {
        fmt.Fprint(w, err.Error())
    }
}

func main() {
    http.HandleFunc("/process", process)
    http.ListenAndServe(":8090", nil)
}

Тестирование с помощью cURL:

curl --location --request GET 'http://127.0.0.1:8090/process' \
--form 'file=@/tmp/template.xltx' -O -J

Сохранение

func (f *File) Save(opts ...Options) error

Используйте Save для сохранения изменении в документе Excel.

Сохранить как

func (f *File) SaveAs(name string, opts ...Options) error

Используйте SaveAs для сохранения документа Excel как указанный файл.

Закрыть рабочую книгу

func (f *File) Close() error

Закройте рабочую книгу и очистите любые системные кэши диска, которые могли быть созданы при открытии документа.

Новый Лист

func (f *File) NewSheet(sheet string) (int, error)

Создайте новый лист на основе заданного имени листа и верните индекс листа в книге. Обратите внимание, что при создании новой книги она будет содержать лист по умолчанию с именем Sheet1.

Удалить Лист

func (f *File) DeleteSheet(sheet string) error

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

Копировать Лист

func (f *File) CopySheet(from, to int) error

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

// Лист с именем Sheet1 уже существует ...
index, err := f.NewSheet("Sheet2")
if err != nil {
    fmt.Println(err)
    return
}
err := f.CopySheet(1, index)

Группировка Листов

func (f *File) GroupSheets(sheets []string) error

Сгруппируйте листы на основе заданных имен листов, и в заданные листы должен входить лист по умолчанию.

Разгруппировать Листы

func (f *File) UngroupSheets() error

Разгруппируйте листы.

Установить Фоновое Изображение Листа

func (f *File) SetSheetBackground(sheet, picture string) error

Установите мозаичное фоновое изображение для указанного листа на основе заданного имени листа и пути к файлу изображения. Поддерживаемые форматы файлов изображений: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF и WMZ.

func (f *File) SetSheetBackgroundFromBytes(sheet, extension string, picture []byte) error

Установите мозаичное фоновое изображение для указанного листа на основе заданного имени листа, расширения формата изображения и данных формата изображения. Поддерживаемые форматы файлов изображений: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF и WMZ.

Установить Лист По Умолчанию

func (f *File) SetActiveSheet(index int)

Установите лист по умолчанию на основе заданного значения индекса, где значение должно быть больше или равно 0 и меньше общего числа листов в книге.

Получить Индекс Листа По Умолчанию

func (f *File) GetActiveSheetIndex() int

Получите индекс листа по умолчанию, возвращая 0, если лист по умолчанию не найден.

Установить Видимость Листа

func (f *File) SetSheetVisible(sheet string, visible bool, veryHidden ...bool) error

Установите видимость листа на основе заданного имени листа и параметра видимости. В книге должен содержаться по крайней мере один видимый лист. Если заданный лист является листом по умолчанию, установка видимости недействительна. Третий опциональный параметр veryHidden действителен только тогда, когда значение параметра visible равно false.

Например, чтобы скрыть лист с именем Sheet1:

err := f.SetSheetVisible("Sheet1", false)

Получить Видимость Листа

func (f *File) GetSheetVisible(sheet string) (bool, error)

Получите настройку видимости листа на основе заданного имени листа. Например, чтобы извлечь настройку видимости листа с именем Sheet1:

visible, err := f.GetSheetVisible("Sheet1")

Установка свойств листа

func (f *File) SetSheetProps(sheet string, opts *SheetPropsOptions) error

Устанавливает свойства указанного листа на основе заданного имени листа и параметров свойств. Поддерживаемые параметры свойств листа указаны ниже:

Параметр Тип Описание
CodeName *string Имя кода
EnableFormatConditionsCalculation *bool Указывает, рассчитываются ли условное форматирование автоматически, со значением по умолчанию true
Published *bool Указывает, опубликован ли лист, со значением по умолчанию true
AutoPageBreaks *bool Указывает, автоматически ли разбиваются страницы листа, со значением по умолчанию true
FitToPage *bool Указывает, включено ли подгонка под страницу при печати, со значением по умолчанию false
TabColorIndexed *int Используется для задания индексированного значения цвета для обратной совместимости
TabColorRGB *string Стандартное значение цвета ARGB
TabColorTheme *int Индекс тематического цвета, начиная с 0
TabColorTint *float64 Значение оттенка, применяемое к цвету, со значением по умолчанию 0.0
OutlineSummaryBelow *bool Указывает направление создания сводки – ниже данных о подробностях, со значением по умолчанию true
OutlineSummaryRight *bool Указывает направление создания сводки – справа от данных о подробностях, со значением по умолчанию true
BaseColWidth *uint8 Основная ширина столбца, выраженная в количестве символов, со значением по умолчанию 8
DefaultColWidth *float64 Ширина столбца по умолчанию с учетом полей и линий сетки
DefaultRowHeight *float64 Высота строки, выраженная в пунктах
CustomHeight *bool Указывает, применяется ли настраиваемая высота строки, со значением по умолчанию false
ZeroHeight *bool Указывает, скрыты ли строки по умолчанию, со значением по умолчанию false
ThickTop *bool Указывает, есть ли у строк верхняя толстая граница по умолчанию, со значением по умолчанию false
ThickBottom *bool Указывает, есть ли у строк нижняя толстая граница по умолчанию, со значением по умолчанию false

Например, чтобы скрыть по умолчанию строку в листе с именем Sheet1:

Установка свойств листа

f, enable := excelize.NewFile(), true
if err := f.SetSheetProps("Sheet1", &excelize.SheetPropsOptions{
    ZeroHeight: &enable,
}); err != nil {
    fmt.Println(err)
}
if err := f.SetRowVisible("Sheet1", 10, true); err != nil {
    fmt.Println(err)
}
f.SaveAs("Book1.xlsx")

Получение свойств листа

func (f *File) GetSheetProps(sheet string) (SheetPropsOptions, error)

Получает свойства указанного листа на основе заданного имени листа.

Установка свойств отображения листа

func (f *File) SetSheetView(sheet string, viewIndex int, opts *ViewOptions) error

Установите свойства отображения листа на основе заданного имени листа, индекса отображения и параметров отображения. viewIndex может быть отрицательным числом, в этом случае подсчёт будет производиться в обратном порядке (-1 обозначает последнее отображение). Поддерживаемые параметры для установки свойств отображения листа следующие:

Свойство Тип Описание
DefaultGridColor *bool Указывает, следует ли использовать цвет сетки по умолчанию, значение по умолчанию - true
RightToLeft *bool Определяет, следует ли отображать справа налево, значение по умолчанию - false
ShowFormulas *bool Указывает, отображает ли лист формулы, значение по умолчанию - false
ShowGridLines *bool Указывает, отображаются ли сетки на листе, значение по умолчанию - true
ShowRowColHeaders *bool Указывает, отображаются ли заголовки строк и столбцов листа, значение по умолчанию - true
ShowRuler *bool Указывает, следует ли отображать линейку в режиме макета страницы, значение по умолчанию - true
ShowZeros *bool Указывает, следует ли отображать нулевые значения в ячейках, значение по умолчанию - true, в противном случае отображаются как пустые
TopLeftCell *string Определяет координату видимой верхней левой ячейки
View *string Указывает тип отображения листа, с возможными значениями перечисления normal, pageBreakPreview и pageLayout
ZoomScale *float64 Текущий процент масштабирования окна отображения, ограниченный диапазоном от 10 до 400, значение по умолчанию - 100

Получение свойств отображения листа

func (f *File) GetSheetView(sheet string, viewIndex int) (ViewOptions, error)

Извлеките свойства отображения листа на основе заданного имени листа и индекса отображения. viewIndex может быть отрицательным числом, в этом случае подсчёт будет производиться в обратном порядке (-1 обозначает последнее отображение).

Установка макета страницы таблицы

func (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error

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

Атрибут Size используется для указания размера бумаги страницы; размер страницы по умолчанию составляет "Letter 8½ × 11 дюймов". В следующей таблице показана связь между размерами макета страницы и параметром индекса Size в Excelize:

Индекс Размер бумаги
1 Letter 8½ × 11 дюймов
2 Letter Small 8½ × 11 дюймов
3 Tabloid 11 × 17 дюймов
4 Ledger 17 × 11 дюймов
... ...
40 Немецкий стандартный веерный блок 8.5 × 12 дюймов
| 41 | Немецкая юридическая веерная бумага 8.5 × 13 дюймов |
| 42 | ISO B4 250 × 353 мм |
| 43 | Японская открытка 100 × 148 мм |
| 44 | Стандартная бумага 9 × 11 дюймов |
| 45 | Стандартная бумага 10 × 11 дюймов |
| 46 | Стандартная бумага 15 × 11 дюймов |
| 47 | Пригласительное письмо 220 × 220 мм |
| 50 | Увеличенный заголовок 9.275 × 12 дюймов |
| 51 | Особо крупный юридический блок 9.275 × 15 дюймов |
| 52 | Дополнительно крупная бумага 11.69 × 18 дюймов |
| 53 | A4 дополнительно крупный 236 × 322 мм |
| 54 | Альбомный блок 8.275 × 11 дюймов |
| 55 | A4 альбомный 210 × 297 мм |
| 56 | Увеличенный альбомный блок 9.275 × 12 дюймов |
| 57 | СуперА/SuperA/A4 бумага 227 × 356 мм |
| 58 | СуперB/SuperB/A3 бумага 305 × 487 мм |
| 59 | Увеличенный заголовок 8.5 × 12.69 дюймов |
| 60 | A4 увеличенный 210 × 330 мм |
| 61 | A5 альбомный 148 × 210 мм |
| 62 | JIS B5 альбомный 182 × 257 мм |
| 63 | A3 дополнительно крупный 322 × 445 мм |
| 64 | A5 дополнительно крупный 174 × 235 мм |
| 65 | ISO B5 дополнительно крупный 201 × 276 мм |
| 66 | A2 420 × 594 мм |
| 67 | A3 альбомный 297 × 420 мм |
| 68 | A3 дополнительно крупный альбомный 322 × 445 мм |
| 69 | Удвоенная японская открытка 200 × 148 мм |
| 70 | A6 105 × 148 мм |
| 71 | Японский конверт Kaku #2 |
| 72 | Японский конверт Kaku #3 |
| 73 | Японский конверт Chou #3 |
| 74 | Японский конверт Chou #4 |
| 75 | Альбомный блок 11 × 8½ дюймов |
| 76 | A3 альбомный 420 × 297 мм |
| 77 | A4 альбомный 297 × 210 мм |
| 78 | A5 альбомный 210 × 148 мм |
| 79 | B4 (JIS) альбомный 364 × 257 мм |
| 80 | B5 (JIS) альбомный 257 × 182 мм |
| 81 | Японская открытка альбомная 148 × 100 мм |
| 82 | Удвоенная японская открытка альбомная 148 × 200 мм |
| 83 | A6 альбомная 148 × 105 мм |
| 84 | Японский конверт Kaku #2 альбомный |
| 85 | Японский конверт Kaku #3 альбомный |
| 86 | Японский конверт Chou #3 альбомный |
| 87 | Японский конверт Chou #4 Альбомный |
| 88 | B6 (JIS) 128 × 182 мм |
| 89 | B6 (JIS) Альбомный 182 × 128 мм |
| 90 | 12 × 11 дюймов |
| 91 | Японский конверт You #4 |
| 92 | Японский конверт You #4 Альбомный |
| 93 | Китайский 16K 146 × 215 мм |
| 94 | Китайский 32K 97 × 151 мм |
| 95 | Китайский большой 32K 97 × 151 мм |
| 96 | Китайский конверт #1 102 × 165 мм |
| 97 | Китайский конверт #2 102 × 176 мм |
| 98 | Китайский конверт #3 125 × 176 мм |
| 99 | Китайский конверт #4 110 × 208 мм |
| 100 | Китайский конверт #5 110 × 220 мм |
| 101 | Китайский конверт #6 120 × 230 мм |
| 102 | Китайский конверт #7 160 × 230 мм |
| 103 | Китайский конверт #8 120 × 309 мм |
| 104 | Китайский конверт #9 229 × 324 мм |
| 105 | Китайский конверт #10 324 × 458 мм |
| 106 | Китайский 16K Альбомный |
| 107 | Китайский 32K Альбомный |
| 108 | Китайский большой 32K Альбомный |
| 109 | Китайский конверт #1 Альбомный 165 × 102 мм |
| 110 | Китайский конверт #2 Альбомный 176 × 102 мм |
| 111 | Китайский конверт #3 Альбомный 176 × 125 мм |
| 112 | Китайский конверт #4 Альбомный 208 × 110 мм |
| 113 | Китайский конверт #5 Альбомный 220 × 110 мм |
| 114 | Китайский конверт #6 Альбомный 230 × 120 мм |
| 115 | Китайский конверт #7 Альбомный 230 × 160 мм |
| 116 | Китайский конверт #8 Альбомный 309 × 120 мм |
| 117 | Китайский конверт #9 Альбомный 324 × 229 мм |
| 118 | Китайский конверт #10 Альбомный 458 × 324 мм |

Свойство `Orientation` используется для указания направления макета страницы, с портретным направлением макета страницы по умолчанию, и дополнительными значениями `portrait` и `landscape`.

Свойство `FirstPageNumber` используется для указания начального номера страницы, по умолчанию установлено автоматическое значение.

Свойство `AdjustTo` используется для указания коэффициента масштабирования страницы, с диапазоном от 10 до 400, т.е. масштабирования от 10% до 400%, и значением по умолчанию `100` для нормального размера. Установка `FitToHeight` или `FitToWidth` переопределит это свойство.

Свойство `FitToHeight` используется для указания масштабирования страницы для изменения ширины страницы, с значением по умолчанию `1`.

Свойство `FitToWidth` используется для указания масштабирования страницы для изменения высоты страницы, с значением по умолчанию `1`.

Свойство `BlackAndWhite` используется для указания монохромной печати, по умолчанию отключено.
f := excelize.NewFile()
var (
    size                 = 10
    orientation          = "landscape"
    firstPageNumber uint = 2
    adjustTo        uint = 100
    fitToHeight          = 2
    fitToWidth           = 2
    blackAndWhite        = true
)
if err := f.SetPageLayout("Sheet1", &excelize.PageLayoutOptions{
    Size:            &size,
    Orientation:     &orientation,
    FirstPageNumber: &firstPageNumber,
    AdjustTo:        &adjustTo,
    FitToHeight:     &fitToHeight,
    FitToWidth:      &fitToWidth,
    BlackAndWhite:   &blackAndWhite,
}); err != nil {
    fmt.Println(err)
}

Получить макет страницы листа книги Excel

func (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error)

Получение свойств макета страницы листа книги Excel на основе заданного имени листа и параметров макета страницы.

Задать поля страницы листа книги Excel

func (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error

Установить поля страницы листа книги Excel на основе заданного имени листа и параметров полей. Поддерживаемые варианты полей:

Опция Тип Описание
Bottom *float64 Нижнее поле
Footer *float64 Поле нижнего колонтитула
Header *float64 Поле верхнего колонтитула
Left *float64 Левое поле
Right *float64 Правое поле
Top *float64 Верхнее поле
Горизонтально *bool Горизонтальное центрирование страницы
Вертикально *bool Вертикальное центрирование страницы

Получить поля страницы листа книги Excel

func (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error)

Получение полей страницы листа книги Excel на основе заданного имени листа и параметров полей.

Установить свойства книги Excel

func (f *File) SetWorkbookProps(opts *WorkbookPropsOptions) error

SetWorkbookProps используется для установки свойств книги Excel. Поддерживаемые свойства книги:

Свойство Тип Описание
Date1904 *bool Указывает, использует ли книга систему даты 1904 года
FilterPrivacy *bool Фильтр конфиденциальности, указывает, проверяет ли приложение личную информацию в книге
CodeName *string Кодовое имя

Получить свойства книги Excel

func (f *File) GetWorkbookProps() (WorkbookPropsOptions, error)

GetWorkbookProps используется для получения свойств книги Excel.

Установка Заголовка и Подвала

func (f *Файл) УстановитьЗаголовокПодвал(sheet string, opts *ОпцииЗаголовкаПодвала) error

Установить заголовок и подвал листа на основе указанного имени листа и управляющих символов.

Заголовок и подвал включают следующие поля:

Поле Описание
ВыравниваниеСПолями Установить выравнивание заголовка и подвала по полям страницы
РазличныйПервый Установить заголовок и подвал для первой страницы
РазличныйНечетныйЧетный Установить заголовок и подвал для нечетных и четных страниц
МасштабироватьСДокументом Установить масштабирование заголовка и подвала вместе с документом
НечетныйПодвал Управляющий символ для подвала нечетных страниц, используется для установки подвала для первой страницы, когда значение РазличныйНечетныйЧетный равно false
НечетныйЗаголовок Управляющий символ для заголовка нечетных страниц, используется для установки заголовка для первой страницы, когда значение РазличныйНечетныйЧетный равно false
ЧетныйПодвал Управляющий символ для подвала четных страниц
ЧетныйЗаголовок Управляющий символ для заголовка четных страниц
ПервыйПодвал Управляющий символ для подвала первой страницы
ПервыйЗаголовок Управляющий символ для заголовка первой страницы

Коды форматирования в таблице ниже можно использовать для 6 полей типа string: НечетныйЗаголовок, НечетныйПодвал, ЧетныйЗаголовок, ЧетныйПодвал, ПервыйПодвал, ПервыйЗаголовок

Код Формата Описание
&& Символ "&"
&размер-шрифта Размер текстового шрифта, где размер шрифта - это десятичный размер шрифта в точках
&"название шрифта,тип шрифта" Строка с названием текстового шрифта, название шрифта и строка с типом шрифта, тип шрифта
&"-,Обычный" Обычный формат текста. Отключить жирный и курсивный режимы
&A Текущее имя листа
&B или &"-,Жирный" Жирный формат текста, выкл. или вкл., по умолчанию откл.
&D Текущая дата
&C Центральная секция
&E Двойное подчеркивание для текста
&F Имя файла текущей книги
&G Указать объект как фон (в настоящее время не поддерживается)
&H Тень текста
&I или &"-,Курсив" Курсивный текст
&K Формат цвета шрифта в формате RGB цвета в RRGGBB. Тематические цвета указываются как TTSNNN, где TT - идентификатор тематического цвета, S - оттенок или тень "+", "-", значение оттенка
&L Левая секция
&N Общее количество страниц
&O Формат текста с контуром
&P[[+\|-]n] Если нет необязательного суффикса, номер текущей страницы (десятичный)
&R Правая секция
&S Перечеркивание текста
&T Текущее время
&U Добавить одиночное подчеркивание к тексту. Режим по умолчанию - отключен
&X Формат верхнего индекса
&Y Формат нижнего индекса
&Z Путь к файлу текущей книги

Например:

err := f.УстановитьЗаголовокПодвал("Лист1", &excelize.ОпцииЗаголовкаПодвала{
    РазличныйПервый:   true,
    РазличныйНечетныйЧетный: true,
    НечетныйЗаголовок:        "&R&P",
    НечетныйПодвал:           "&C&F",
    ЧетныйЗаголовок:          "&L&P",
    ЧетныйПодвал:             "&L&D&R&T",
    ПервыйЗаголовок:          `&CЦентр &"-,Жирный"Жирный&"-,Обычный"ЗаголовокU+000A&D`,
})

В приведенном выше примере содержится следующий формат:

  • Первая страница имеет собственный заголовок и подвал
  • Нечетные и четные страницы имеют разные заголовки и подвалы
  • В правой части заголовка нечетной страницы находится текущий номер страницы
  • В центральной части подвала нечетной страницы находится имя файла текущей книги
  • В левой части заголовка четной страницы находится текущий номер страницы
  • В левой части подвала четной страницы находится текущая дата, а в правой части находится текущее время
  • Текст на первой строке в центральной части первой страницы - "Центр Жирный Заголовок", а на второй строке - дата
  • На первой странице отсутствует подвал

Установить имя

func (f *File) SetDefinedName(definedName *DefinedName) error

Установить имя и диапазон ссылок на основе заданного имени, со значением области по умолчанию - рабочая книга. Например:

err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "Amount",
    RefersTo: "Sheet1!$A$2:$D$5",
    Comment:  "комментарий для определенного имени",
    Scope:    "Sheet2",
})

Установка области печати и заголовков для печати листа:

Установка области печати и заголовков для печати листа

if err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "_xlnm.Print_Area",
    RefersTo: "Sheet1!$A$1:$Z$100",
    Scope:    "Sheet1",
}); err != nil {
    fmt.Println(err)
}
if err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "_xlnm.Print_Titles",
    RefersTo: "Sheet1!$A:$A,Sheet1!$1:$1",
    Scope:    "Sheet1",
}); err != nil {
    fmt.Println(err)
}

Получить имя

func (f *File) GetDefinedName() []DefinedName

Получить список имен рабочей книги и листа в пределах области.

Удалить имя

func (f *File) DeleteDefinedName(definedName *DefinedName) error

Удалить определенное имя на основе заданного имени и области имени, со значением области по умолчанию - рабочая книга. Например:

err := f.DeleteDefinedName(&excelize.DefinedName{
    Name:     "Amount",
    Scope:    "Sheet2",
})

Установить свойства приложения книги

func (f *File) SetAppProps(appProperties *AppProperties) error

Установить свойства приложения книги. Среди устанавливаемых свойств:

Свойство Описание
Программа Название приложения, создавшего этот документ
МасштабОбрезка Задает отображение миниатюры документа. Установите значение true для масштабирования миниатюры документа и false для обрезки миниатюры документа
БезопасностьДок Уровень безопасности документа, представленный числовым значением.
Компания Название компании, связанной с документом
СсылкиАктуальны Задает, актуальны ли гиперссылки в документе. Установите значение true для обновленных гиперссылок и false для устаревших гиперссылок
ИзмененныеГиперссылки Задает, должны ли использоваться новые гиперссылки, указанные в этом разделе, для обновления отношений гиперссылок в следующий раз, когда откроется этот документ
ВерсияПриложения Определяет версию приложения, создавшего этот документ. Значение должно быть в формате XX.YYYY, где X и Y - числовые значения, в противном случае файл не будет соответствовать стандарту

Например:

err := f.SetAppProps(&excelize.AppProperties{
    Application:       "Microsoft Excel",
    ScaleCrop:         true,
    DocSecurity:       3,
    Company:           "Название Компании",
    LinksUpToDate:     true,
    HyperlinksChanged: true,
    AppVersion:        "16.0000",
})

Получить свойства приложения книги

func (f *File) GetAppProps() (*AppProperties, error)

Получить свойства приложения книги.

Установка свойств документа

func (f *File) SetDocProps(docProperties *DocProperties) error

Устанавливает базовые свойства книги. К устанавливаемым свойствам относятся:

Свойство Описание
Category Категория содержимого документа
ContentStatus Статус содержимого документа. Например, значения могут включать "Draft" (черновик), "Reviewed" (просмотрено) и "Final" (финальный)
Created Время создания документа в формате ISO 8601 UTC, например 2019-06-04T22:00:10Z
Creator Автор документа
Description Описание содержимого ресурса
Identifier Четкая ссылка на ресурс в заданном контексте
Keywords Ключевые слова документа
Language Основной язык содержимого документа
LastModifiedBy Пользователь, который последний раз изменял документ
Modified Время последнего изменения документа в формате ISO 8601 UTC, например 2019-06-04T22:00:10Z
Revision Версия документа
Subject Тема документа
Title Заголовок документа
Version Номер версии, устанавливаемый пользователем или приложением

Например:

err := f.SetDocProps(&excelize.DocProperties{
    Category:       "категория",
    ContentStatus:  "Draft",
    Created:        "2019-06-04T22:00:10Z",
    Creator:        "Go Excelize",
    Description:    "Этот файл создан с помощью Go Excelize",
    Identifier:     "xlsx",
    Keywords:       "Электронная таблица",
    LastModifiedBy: "Go Author",
    Modified:       "2019-06-04T22:00:10Z",
    Revision:       "0",
    Subject:        "Тестовая тема",
    Title:          "Заголовок теста",
    Language:       "ru-RU",
    Version:        "1.0.0",
})

Получение свойств документа

func (f *File) GetDocProps() (*DocProperties, error)

Получение базовых свойств книги.

Защита книги

func (f *File) ProtectWorkbook(opts *WorkbookProtectionOptions) error

Защищает структуру книги паролем для предотвращения просмотра скрытых листов, добавления, перемещения или скрытия листов и их переименования другими пользователями. Поле AlgorithmName поддерживает указание алгоритмов хэширования XOR, MD4, MD5, SHA-1, SHA-256, SHA-384 или SHA-512. Если алгоритм хэширования не указан, используется алгоритм XOR. Например, защита структуры книги паролем:

err := f.ProtectWorkbook(&excelize.WorkbookProtectionOptions{
    Password:      "пароль",
    LockStructure: true,
})

WorkbookProtectionOptions определяет параметры для защиты книги.

type WorkbookProtectionOptions struct {
    AlgorithmName string
    Password      string
    LockStructure bool
    LockWindows   bool
}

Снятие защиты с книги

func (f *File) UnprotectWorkbook(password ...string) error

Снимает защиту с книги, указывая необязательный параметр пароля для проверки и удаления защиты с книги.