Рабочая книга
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
Снимает защиту с книги, указывая необязательный параметр пароля для проверки и удаления защиты с книги.