Excelize v2.7.0
- Версия выпущена: 9 Январь 2023 г.
- Выпуск GitHub: https://github.com/xuri/excelize/releases/tag/v2.7.0
Примечания к выпуску
Наиболее заметные изменения в этом выпуске:
Совместимость
- Требования к обновлению Языковая версия Go 1.16 или более поздняя, для миграции пакета устаревания
ioutil
- Проверка и возврат ошибки для недопустимого имени листа вместо обрезки недопустимых символов
- Функция
GetCellStyle
больше не возвращает стиль главной ячейки диапазона ячеек слияния - Переименуйте 5 экспортируемых типов данных и константу ошибки:
- Переименование
PivotTableOption
вPivotTableOptions
- Переименование
FormatHeaderFooter
вHeaderFooterOptions
- Переименование
FormatSheetProtection
вSheetProtectionOptions
- Переименование
SparklineOption
вSparklineOptions
- Переименование
ErrExistsWorksheet
вErrExistsSheet
- Переименование
- Удаление 54 экспортированных типов:
AutoPageBreaks
,BaseColWidth
,BlackAndWhite
,CodeName
,CustomHeight
,Date1904
,DefaultColWidth
,DefaultGridColor
,DefaultRowHeight
,EnableFormatConditionsCalculation
,FilterPrivacy
,FirstPageNumber
,FitToHeight
,FitToPage
,FitToWidth
,OutlineSummaryBelow
,PageLayoutOption
,PageLayoutOptionPtr
,PageLayoutOrientation
,PageLayoutPaperSize
,PageLayoutScale
,PageMarginBottom
,PageMarginFooter
,PageMarginHeader
,PageMarginLeft
,PageMarginRight
,PageMarginsOptions
,PageMarginsOptionsPtr
,PageMarginTop
,Published
,RightToLeft
,SheetFormatPrOptions
,SheetFormatPrOptionsPtr
,SheetPrOption
,SheetPrOptionPtr
,SheetViewOption
,SheetViewOptionPtr
,ShowFormulas
,ShowGridLines
,ShowRowColHeaders
,ShowRuler
,ShowZeros
,TabColorIndexed
,TabColorRGB
,TabColorTheme
,TabColorTint
,ThickBottom
,ThickTop
,TopLeftCell
,View
,WorkbookPrOption
,WorkbookPrOptionPtr
,ZeroHeight
иZoomScale
- Удалить 2 экспортированные константы:
OrientationPortrait
иOrientationLandscape
- Изменение подписи 21 функций:
- Изменить
func (f *File) SetPageLayout(sheet string, opts ...PageLayoutOption) error
наfunc (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error
- Изменить
func (f *File) GetPageLayout(sheet string, opts ...PageLayoutOptionPtr) error
наfunc (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error)
- Изменить
func (f *File) SetPageMargins(sheet string, opts ...PageMarginsOptions) error
наfunc (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error
- Изменить
func (f *File) GetPageMargins(sheet string, opts ...PageMarginsOptionsPtr) error
наfunc (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error)
- Изменить
func (f *File) GetSheetIndex(sheet string) int
наfunc (f *File) GetSheetIndex(sheet string) (int, error)
- Изменить
func (f *File) SetSheetName(source, target string)
наfunc (f *File) SetSheetName(source, target string) error
- Изменить
func (f *File) GetSheetVisible(sheet string) bool
наfunc (f *File) GetSheetVisible(sheet string) (bool, error)
- Изменить
func (f *File) DeleteSheet(sheet string)
наfunc (f *File) DeleteSheet(sheet string) error
- Изменить
func (f *File) NewSheet(sheet string) int
наfunc (f *File) NewSheet(sheet string) (int, error)
- Изменить
func (f *File) NewConditionalStyle(style string) (int, error)
наfunc (f *File) NewConditionalStyle(style *Style) (int, error)
- Изменить
func (f *File) NewStyle(style interface{}) (int, error)
наfunc (f *File) NewStyle(style *Style) (int, error)
- Изменить
func (f *File) AddChart(sheet, cell, opts string, combo ...string) error
наfunc (f *File) AddChart(sheet, cell string, chart *ChartOptions, combo ...*ChartOptions) error
- Изменить
func (f *File) AddChartSheet(sheet, opts string, combo ...string) error
наfunc (f *File) AddChartSheet(sheet string, chart *ChartOptions, combo ...*ChartOptions) error
- Изменить
func (f *File) AddShape(sheet, cell, opts string) error
наfunc (f *File) AddShape(sheet, cell string, opts *Shape) error
- Изменить
func (f *File) AddPicture(sheet, cell, picture, format string) error
наfunc (f *File) AddPicture(sheet, cell, picture string, opts *GraphicOptions) error
- Изменить
func (f *File) AddPictureFromBytes(sheet, cell, opts, name, extension string, file []byte) error
наfunc (f *File) AddPictureFromBytes(sheet, cell, name, extension string, file []byte, opts *GraphicOptions) error
- Изменить
func (f *File) AddTable(sheet, hCell, vCell, opts string) error
наfunc (f *File) AddTable(sheet, rangeRef string, opts *TableOptions) error
- Изменить
func (sw *StreamWriter) AddTable(hCell, vCell, opts string) error
наfunc (sw *StreamWriter) AddTable(rangeRef string, opts *TableOptions) error
- Изменить
func (f *File) AutoFilter(sheet, hCell, vCell, opts string) error
наfunc (f *File) AutoFilter(sheet, rangeRef string, opts *AutoFilterOptions) error
- Изменить
func (f *File) SetPanes(sheet, panes string) error
наfunc (f *File) SetPanes(sheet string, panes *Panes) error
- Изменить
func (f *File) SetConditionalFormat(sheet, reference, opts string) error
наfunc (f *File) SetConditionalFormat(sheet, rangeRef string, opts []ConditionalFormatOptions) error
- Изменить
- Введите новую функцию вместо существующих функций:
- Используйте
SetSheetProps
вместоSetSheetPrOptions
иSetSheetFormatPr
- Используйте
GetSheetProps
вместоGetSheetPrOptions
иGetSheetFormatPr
- Используйте
SetSheetView
вместоSetSheetViewOptions
- Используйте
GetSheetView
вместоGetSheetViewOptions
- Используйте
SetWorkbookProps
вместоSetWorkbookPrOptions
- Используйте
GetWorkbookProps
вместоGetWorkbookPrOptions
- Используйте
InsertRows
вместоInsertRow
для поддержки одновременной вставки нескольких строк - Используйте
InsertCols
вместоInsertCol
для поддержки одновременной вставки нескольких столбцов
- Используйте
- Добавьте
CellTypeFormula
,CellTypeInlineString
,CellTypeSharedString
и удалитеCellTypeString
в перечисленииCellType
- Параметр был изменен для функции
AddComment
, поддержка создания форматированного текста в комментариях, связанная проблема #1204 - Удалите внутреннюю печать журнала ошибок, ошибка будет возвращена при ошибке десериализации XML, добавьте возвращаемое значение ошибки для функций
GetComments
,GetDefaultFont
иSetDefaultFont
Примечательные особенности
- Добавление новых функций
GetDataValidations
иGetConditionalFormats
для получения проверок данных и условных форматов, связанная проблема #827 - Добавлены новые функции
ProtectWorkbook
иUnprotectWorkbook
для защиты книг - Добавление новой функции
SetSheetCol
для набора ячеек столбцов листа, связанная проблема #1247 - Добавлена новая функция
GetColStyle
для получения стилей столбцов, связанная проблема #1293 - Добавлена новая функция SetSheetBackgroundFromBytes для установки фонового изображения по заданным данным изображения, связанная проблема #1405
- Добавьте новую экспортную переменную
IndexedColorMapping
- Добавить 20 типов экспорта:
AutoFilterListOptions
,AutoFilterOptions
,Chart
,ChartAxis
,ChartDimension
,ChartLegend
,ChartLine
,ChartMarker
,ChartPlotArea
,ChartSeries
,ChartTitle
,ConditionalFormatOptions
,PaneOptions
,Panes
,GraphicOptions
,Shape
,ShapeColor
,ShapeLine
,ShapeParagraph
иTableOptions
- Новые функции поддержки 2 формул: AGGREGATE и SUBTOTAL
- Функции
Save
,Write
иWriteTo
теперь принимают параметры сохранения, связанная проблема #744 - Поддержка функции
AddChart
указывает, является ли гладкая линия линейного графика, связанная проблема #1290 - Функция
AddChart
поддерживает установку пользовательского цвета линий на графиках, связанная проблема #1345 - Функция
AddChart
поддерживает пользовательский стиль шрифта оси диаграммы, связанная проблема #320 - Функция
AddChart
поддерживает создание 3D линейной диаграммы - Функции
SetColWidth
,GetColWidth
,SetColVisible
,GetColVisible
,SetColStyle
иGetColStyle
теперь поддерживают безопасность параллелизма - Ошибка будет возвращена при задании несуществующего идентификатора стиля, связанная проблема #1323
- Ошибка будет возвращена при установке строки потока без возрастающих номеров строк, чтобы избежать возможных ошибок, связанная проблема #1139
- Модуль записи потока будет применять стиль в
RowOpts
для каждой ячейки, связанная проблема #1354 - Поддержка модуля записи потоков для установки панелей, связанная проблема #1047
- Поддержка модуля записи потоков для установки встроенной ячейки форматированного текста
- Поддержка записи потока для вставки разрыва страницы
- Добавлено 7 новых экспортируемых ошибок:
ErrUnprotectWorkbook
,ErrUnprotectWorkbookPassword
,ErrStreamSetPanes
,ErrSheetNameBlank
,ErrSheetNameInvalid
,ErrSheetNameLength
иErrSheetNameSingleQuote
- Введение 5 новых типов данных экспорта:
HeaderFooterOptions
,PageLayoutMarginsOptions
,PageLayoutOptions
,SheetPropsOptions
иViewOptions
- Поддержка настройки сводных столбцов, чтобы они отображались справа от деталей в структуре
- Поддержка установки и получения цвета шрифта с темой и оттенком, связанная проблема #1369
- Поддержка получения значения ячейки, которое содержит дату в формате ISO 8601
- Установите поддержку и получите цвет шрифта с индексированным цветом
- Поддержка стиля столбца обновления при вставке или удалении столбцов
- Функция
Close
рабочей книги теперь поддерживает очистку временных файлов потоковой записи - Функция
AddPicture
теперь позволяет вставлять изображения в формате SVG
Улучшение совместимости
- Модуль записи потока записывает встроенный строковый тип для строкового значения ячейки, связанная проблема #1377
- Пропускать пустые строки при сохранении электронной таблицы, чтобы уменьшить размер файла, связанная проблема #1383
Исправление ошибок
- Исправлена проблема с круглым форматом десятичных чисел со встроенным числовым форматом, решенная проблема #1328, #1368 и #1373
- Исправлена проблема с применением номерного формата AM/PM в некоторых случаях, решенная проблема #1338
- Исправьте панику при удалении комментариев, помещенных границами фрагмента вне диапазона, решенная проблема #1343
- Исправлена паника при получении значения ячейки в некоторых случаях, решенная проблема #1384 и #1415
- Исправлена проблема синтаксического анализа номерного формата по умолчанию с длинной строкой цифр, решенная проблема #1360
- Исправлено создание листа с пустым именем, вызывающего повреждение файла, решенная проблема #1361
- Исправлено получение содержимого изображения было пустым после вставки изображения
- Исправьте повреждение книги после вставки cols/rows в некоторых случаях
- Удалить общую формулу в цепочке вычислений при записи ячейки формулы, чтобы в некоторых случаях исправить повреждение рабочей книги
- Нормализуйте имя листа, чтобы исправить регрессию поведения между 2.6.0 и 2.6.1, решенная проблема #1365
- Исправлена проблема с результатом вычисления формулы функции
OR
- Исправить ошибку при вставке столбцов или строк на лист, который содержит одну объединенную ячейку диапазона ячеек
- Исправлена ошибка при получении диапазона объединенных ячеек на листе, который содержит один объединенный диапазон ячеек
- Исправлено получение неполного значения ячейки форматированного текста в некоторых случаях
- Escape-символы XML для потоковой записи, чтобы избежать поврежденного файла, решенная проблема #1391
- Исправить ошибку результата функции формулы ADDRESS с пустым именем рабочего листа, решенная проблема #1396
- Исправить проблему со вставкой изображения в некоторых случаях, решенная проблема #1404
Оптимизация производительности
- Повышение производительности для объединения ячеек потокового модуля записи, снижение затрат времени более чем на 90% и сокращение использования памяти максимум на 86%
- Повышение производительности функции записи потоков
SetRow
, сокращение использования памяти и ускорение примерно на 19%
Другие
- Обновлен модуль зависимостей
- Унитарные тесты и godoc обновлены
- Использование специализированного имени в переменных и функциях
- Веб-сайт документации с многоязычным: арабский, немецкий, испанский, английский, французский, русский, китайский, японский и корейский языки, который был обновлен
Спасибо
Спасибо всем участникам Excelize. Ниже приведен список участников, внесших свой код в эту версию:
- @cdenicola (Cooper de Nicola)
- @chenliu1993
- @davidborry
- @patsak (Kostya Privezentsev)
- @dafengge0913
- @Beeb0p (Artem Tarasenko)
- @invzhi
- @zhangzitao (Zitao)
- @jtwatson (Joseph Watson)
- @carbin-gun (charles.deng)
- @harrison3000 (Harrison)
- @strivek (GaoFei)
- @gonghaibinx
- @martinmr (Martin Martinez Rivera)
- @zclark (Zach Clark)
- @March0715 (March)
- @renxiaotu
- @devloppper
- @jianxinhou
- @nesstord
- @Bayzet (Bayzet Tlyupov)
- @guoweikuang (郭伟匡)
- @qinyuguang (Gin)
- @liron-l (Liron Levin)