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)