• v2.8.1 688808b2b4

    v2.8.1 Stable

    xuri released this 2024-02-25 18:22:51 +00:00 | 19 commits to master since this release

    We are pleased to announce the release of version 2.8.1. Featured are a handful of new areas of functionality and numerous bug fixes.

    A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.

    Release Notes

    The most notable changes in this release are:

    Breaking Change

    • Upgrade requirements Go language version is 1.18 or later, for upgrade of dependency package golang.org/x/net
    • Change the data type for the HeaderFooterOptions structure fields AlignWithMargins and ScaleWithDoc as a pointer, resolve issue #1645
    • Remove unused exported data structure ShapeColor

    Notable Features

    • Add new exported function SetCellUint, related issue #1681
    • Add new exported function GetPictureCells for get all picture cells, related issue #1218
    • Add new exported function GetConditionalStyle for get the conditional format style definition, related issue #1690
    • Add new exported function GetHeaderFooter for get the worksheet header and footer
    • Add new exported function AddSlicer for adding table and pivot table slicers
    • Add new exported function GetPivotTables for get pivot tables
    • Add new exported function DeletePivotTable for delete pivot table
    • Add a new Name field in the PivotTableOptions to support specify pivot table name
    • New support 7 formula functions: DBCS, SEARCH, SEARCHB, TEXT, TEXTAFTER, TEXTBEFORE and xlfn.ANCHORARRAY
    • Add export ChartLineType enumeration to specify the chart line type, related issue #1706
    • Add new Border field in the Chart data type to set the chart area border
    • Add new Type field in the ChartLine type to set the line type
    • Add new exported source relationship and namespace NameSpaceSpreadSheetXR10, ContentTypeSlicer, ContentTypeSlicerCache, and SourceRelationshipSlicer
    • Add new exported extended URI ExtURIPivotCacheDefinition
    • Allow dot character in the defined name, table name, or pivot table name
    • Keep all cells value in the table range when deleting table
    • Support format cell value with fraction number format code
    • Support delete image files from the workbook internally when deleting pictures to reduce generated workbook size and resolve potential security issues
    • Support set the height and width for the comment box, related issue #1688
    • Support update conditional formatting, data validations, defined names, drawing objects, formula reference and volatile dependencies on inserting/deleting columns/rows, related issues #1306 and #1615
    • Support 6 new kinds of conditional formatting types: text, blanks, no blanks, errors, no errors and time period
    • Support calculate formula with multiple dash arithmetic symbol
    • Support copy conditional format and data validation on duplicate row, related issue #1729
    • Support unset custom row height if the height value is -1 when using the SetRowHeight function
    • The SetRowHeight function will return an error if given an invalid row height value
    • The AddChart function support set the data labels position for the chart, related issue #1704
    • The AddChart function support set solid color or transparent fill for chart area, plot area, and maker, add a new field Fill in Chart, ChartPlotArea, and ChartMarker data type, related issue #1786
    • The AddChart function support set chart axis font family, size and strike style, related issue #1809
    • Add new field DataLabelPosition in the ChartSeries data type, support to sets the position of the chart series data label
    • Add new field BubbleSize in the Chart data type, support set the bubble size in all data series for the bubble chart or 3D bubble chart
    • Add new exported ChartDataLabelPositionType data type
    • The GetPictureCells and GetPictures function support get embedded cell images created by Kingsoft WPS™ Office, related issue #664
    • The SetConditionalFormat function support set conditional formatting with multiple cell ranges, related issue #1783
    • Support to update defined names reference when rename worksheet, related issue #1792
    • Add new GetBaseColor function support get the preferred hex color code, related issue #1794
    • The calculation engine support date and formula type cells, related issue #1807
    • Cell value reading functions inherit the Options settings of the OpenReader, related issue #1815

    Improve the Compatibility

    • Improve compatibility for absolute path drawing part
    • Improve compatibility for workbook internal tab ratio property value
    • Improve compatibility with empty custom number format code
    • Improve compatibility with the viewer which doesn't support default theme part namespace, related issue #1694
    • Improve delete cell comment shape compatibility with KingSoft WPS™ Office, related issue #1789
    • Saving workbook with sorted internal part path, make identically created workbooks hash checksum is same, related issue #1732

    Bug Fixes

    • Add check for MID and MIDB formula functions num_chars arguments, prevent panic on specifying a negative number, resolve issue #1647
    • Fix empty calculate result with numeric arguments in LEN, LOWER, PROPER, REPT, UPPER, and IF formula functions
    • Fix calculate formula functions CHITEST and MMULT panic in some cases
    • Fix a v2.8.0 regression bug, error on set print area and print titles with built-in special defined name
    • Fix a v2.8.0 regression bug, corrupted workbooks generated by improving compatibility with internally indexed color and MRU colors styles parts
    • Fix a v2.8.0 regression bug, number format code apply result was empty, resolve issue #1658
    • Fix a v2.7.1 regression bug, the bubble is hidden in the bubble or 3D bubble chart
    • Fixed panic on AutoFilter by adding nil pointer guard for local sheet ID, resolve issue #1655
    • Fix corrupted workbooks generated when adding tables in some cases
    • Fix incorrect time number format result, resolve issue #1661
    • Supports getting formula string cell value, resolve issue #1665
    • Fix incorrect table ID generated in the workbook which contains single table cells
    • Fix missing relationship parts in the content types in some cases
    • Upgrade number format parser to fix missing literal tokens in some cases
    • Update built-in zh-cn and zh-tw language number format
    • Fix the incorrect custom number format ID allocated, resolve issue #1677
    • Fix updating a table's range by removing it and creating it again doesn't work, resolve issue #1682
    • Fix a potential issue that stream reader temporary files can not be clear, resolve issue #1680
    • Fix incorrect formula calculation result in some cases, resolve issue #1681
    • Fix concurrency race conditions on get cell value, resolve issue #1687
    • Fix some format missing on get style definition, resolve issue #1708
    • Fix number format scientific notation zero fill issues, resolve issue #1710
    • Fix panic on read workbook with internal row element without r attribute, resolve issue #1723
    • Fix GetCellRichText returns error on getting inline rich text cells
    • Fix invalid shared string table index on set cell value in some cases
    • Fix GetConditionalFormats panic on get conditional format without above average rules, resolve issue #1745
    • Fix incorrect adjust merged cells on remove rows, resolve issue #1749
    • Fix the SetConditionalFormat function creates incorrect multiple conditional formats rules priority, resolve issue #1770
    • Fix the GetConditionalFormats function doesn't return gradient data bar rule, resolve issue #1769
    • Fix the GetStyle or GetConditionalStyle function to returns incorrect DecimalPlaces field value, resolve issue #1777
    • Fix the CalcCellValue function does not return raw value when enable RawCellValue, resolve issue #1803

    Performance

    • Improves performance for adding and removing pivot table and images
    • Reduce memory consumption by trimming the rows and cells, resolve issue #1712

    Miscellaneous

    • The dependencies module has been updated
    • Unit tests and godoc updated
    • Documentation website with multilingual: Arabic, German, Spanish, English, French, Russian, Chinese, Japanese, and Korean, which has been updated

    Thank you

    Thanks for all the contributors to Excelize. Below is a list of contributors that have code contributions in this version:

    • fnickels (Francis Nickels III)
    • m12r (Matthias Endler)
    • Abdelaziz-Ouhammou
    • Juneezee (Eng Zer Jun)
    • yicixin (壹次心)
    • TeeRenJing (rjtee)
    • phperic (magicrabbit)
    • kjushka (Anton Petrov)
    • krstak (Marko Krstic)
    • lpxxn (Nick)
    • ByteFlyCoding
    • yangliyl (Yang Li)
    • 15535382838
    • TajangSec (Tajang)
    • lujin1 (lujin)
    • parkoo (Tian)
    • ZhangXiao1024 (ZX)
    • zcgly
    • bramvbilsen (Bram Vanbilsen)
    • user65536
    • tianaiyouqing (天爱有情)
    • cuishuang (cui fliter)
    • CooolNv (Xuesong)
    • yuegu520
    • oneweek20169902 (li)
    • 3zmx
    • 327674413
    • melf-xyzh (MELF晓宇)
    • L4nn15ter
    • rememberher (Jerry)
    • ooooooobh (cherry)
    • xxxwang1983
    • funa12
    • coolbit
    • taitaking (zhukewen)
    • kewenof
    • ivekkairi (Vivek Kairi)
    • edwardfward (Ed)
    Downloads
  • v2.8.0 3b2b8ca8d6

    v2.8.0 Stable

    xuri released this 2023-08-27 16:02:25 +00:00 | 94 commits to master since this release

    We are pleased to announce the release of version 2.8.0. Featured are a handful of new areas of functionality and numerous bug fixes.

    A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.

    Release Notes

    The most notable changes in this release are:

    Breaking Change

    • Rename exported variable ErrTableNameLength to ErrNameLength
    • Rename exported type PaneOptions to Selection
    • Rename the Runs field to Paragraph in the exported Comment data type
    • Remove the Lang field in the Style data type
    • Removed exported ChartTitle data type, and using the RichTextRun data type instead of it
    • Changed the data type for the DecimalPlaces to pointer of integer
    • Change the default point to pixels conversion factor, resolve issues #279 and #1536
    • Change the AddShape function signature: func (f *File) AddShape(sheet, cell string, opts *Shape) error to func (f *File) AddShape(sheet string, opts *Shape) error

    Notable Features

    • Add new exported error variables ErrExistsTableName and ErrorFormControlValue
    • Add new options ShortDatePattern, LongDatePattern, LongTimePattern and CultureInfo in the Options data type, related issue #1199
    • Add new exported data type CultureName enumeration for country code
    • New functions GetTables and DeleteTablesupport to get and remove tables, related issues #674 and #1454
    • New function GetStyle support to get style definitions, related issues #314, #1520 and #1521
    • Support applying cell value with placeholder, padding, rounds numbers, currency, accounting and switches argument number format, and support applying date and time number format for 812 language tags, related issue #660
    • New support 10 formula functions: ARRAYTOTEXT, FORECAST, FORECAST.LINEAR, FREQUENCY, INTERCEPT, ODDFYIELD, ODDLPRICE, ODDLYIELD, PROB, VALUETOTEXT
    • Add file path length limitation details in the error message
    • New function GetPanes support to get sheet panes and view selection
    • New functions AddFormControl, GetFormControls and DeleteFormControl support to form controls, related issues #301 and #1169
    • The AddChart function support set primary titles, related issue #1553
    • The AddChart function support creating chart with a secondary series axis, related issue #518
    • The AddChart function support formatting and setting rich text titles for the chart, related issue #1588
    • Add check for shape type for the AddShape function, an error will be returned if no shape type is specified
    • Support read cell values formatted by the Japanese calendar number format, related issue #1590
    • The GetPictures function support read one cell anchor pictures, related issue #1585
    • The NewConditionalStyle function support to create a conditional format with number format and protection, related issue #1610

    Improve the Compatibility

    • Support checking cell value length with multi-bytes characters, related issue #1517
    • Prevent create duplicate tables and defined name with the same name
    • Improve the cell comment box shape size compatibility with KingSoft WPS
    • Support fallback to default column width in sheet format property, related issue #1536
    • Made case in-sensitive for internal worksheet XML path to improve compatibility, related issue #1591

    Bug Fixes

    • Escape XML characters after checking cell value length, fix stream writer generated file corrupted, resolve issues #1518, #1519 and #1530
    • Fix incorrect comment box size for multi-line plain text comments
    • Preventing format text cell value as a numeric, resolve issues #1523, #1528 and #1533
    • Fix race conditions for concurrency safety functions
    • Fix incorrect round millisecond for the date time
    • Fix incorrect number formatted result for date and time with 12 hours at AM
    • Fix incorrect formula functions SUMIFS and AVERAGEIFS result, resolve issue #1564
    • Fix basic arithmetic operator priority issues in the calculating engine, resolve issue #1599
    • Fix across worksheet reference issue for the formula calculation engine
    • Fix adjust table issue when after removing rows, resolve issue #1539
    • Support to get multiple images in one cell, resolve issue #1548
    • Fix the added picture position was incorrect in some cases, resolve issue #1560
    • Support adjusting the formula when inserting columns and rows, fix the workbook corruption caused by inserting columns or rows caused, resolve issue #1565
    • Formula function CONCAT, CONCATENATE support concatenation of multiple cell values, resolve issue #1569
    • Fix incorrect formula calculate results on a nested argument function which returns a numeric result, resolve issue #1582
    • Fix internal graphic object counter issues caused added picture was duplicated, resolve issue #1584
    • Fix read date time cell result was incorrectly caused by hours rounding issue, resolve issue #1587
    • Fix panic on getting merged cells with the same start and end axis

    Performance

    • Optimizing regexp calls to improve performance, related issue #1532
    • This avoid unnecessary byte/string conversion, related issue #1541

    Miscellaneous

    • The dependencies module has been updated
    • Simplify variable declaration and error return statements
    • Remove the built-in language number format code mapping with Unicode values
    • Remove the internal xlsxTabColor data type, using the xlsxColor data type instead of xlsxTabColor
    • Unit tests and godoc updated
    • Documentation website with multilingual: Arabic, German, Spanish, English, French, Russian, Chinese, Japanese, and Korean, which has been updated

    Thank you

    Thanks for all the contributors to Excelize. Below is a list of contributors that have code contributions in this version:

    • IAkumaI (Valery Ozarnichuk)
    • sillydong (Chen Zhidong)
    • fudali113 (fudali)
    • Juneezee (Eng Zer Jun)
    • joehan109
    • yicixin (壹次心)
    • vb6iscool
    • chengcxy (chengxinyao)
    • lidp20
    • JDavidVR (David)
    • fsfsx
    • cnmlgbgithub
    Downloads
  • v2.7.1 799317eac5

    v2.7.1 Stable

    xuri released this 2023-04-09 16:02:20 +00:00 | 146 commits to master since this release

    We are pleased to announce the release of version 2.7.1. Featured are a handful of new areas of functionality and numerous bug fixes.

    A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.

    Release Notes

    The most notable changes in this release are:

    Breaking Change

    • Remove the Color field in the ChartLine data type
    • Replace the data type ShapeParagraph with RichTextRun
    • Remove the Color field from the type Shape, and uses the Fill instead of it
    • Remove the exported type AutoFilterListOptions
    • Rename the exported type TableOptions to Table
    • The AddChart function require using ChartType enumeration value to specify the chart type
    • Change 7 functions signature:
      • Change the func (f *File) AutoFilter(sheet, rangeRef string, opts *AutoFilterOptions) error to func (f *File) AutoFilter(sheet, rangeRef string, opts []AutoFilterOptions) error
      • Change the func (f *File) AddPictureFromBytes(sheet, cell, name, extension string, file []byte, opts *GraphicOptions) error to func (f *File) AddPictureFromBytes(sheet, cell string, pic *Picture) error
      • Change the func (f *File) GetPicture(sheet, cell string) (string, []byte, error) to func (f *File) GetPictures(sheet, cell string) ([]Picture, error)
      • Change the func (f *File) AddVBAProject(bin string) error to func (f *File) AddVBAProject(file []byte) error
      • Change the func (f *File) GetComments() (map[string][]Comment, error) to func (f *File) GetComments(sheet string) ([]Comment, error)
      • Change the func (f *File) AddTable(sheet, rangeRef string, opts *TableOptions) error to func (f *File) AddTable(sheet string, table *Table) error
      • Change the func (sw *StreamWriter) AddTable(rangeRef string, opts *TableOptions) error to func (sw *StreamWriter) AddTable(table *Table) error

    Notable Features

    • Add new functions SetSheetDimension and GetSheetDimension for workbook dimension supports, related issue #1463
    • The NewStyle function support to create of 17 kinds of fill variants styles
    • Increase max cell styles limit to 65430
    • The AddPicture function allowing insert BMP format images
    • The GetPictures function support to get multiple images in a cell
    • The SetConditionalFormat function support to creating a conditional format with a "stop if true" or "icon sets" rule
    • The SetConditionalFormat function support to set border color and create solid color for the color data bar, related issue #1462
    • The AddChart function support to set the format for the chart data series solid fill, related issue #1474
    • The AddChart function support to set the bubble size in a data series
    • The AddChart function support to specifies the values in second plot for the bar/pie of pie chart
    • The AddChart function support to set number format for chart data labels and axis, related issue #1499
    • The AddTable function support to specify if show header row of the table when create the table
    • The AddTable function support to validate table name, and added a new error constant ErrTableNameLength, related issue #1468
    • The AutoFilter function support to add multiple filter columns when create auto filter
    • The CalcCellValue function support to specify if applying number format style for the cell calculation result
    • The CalcCellValue function support double-byte chars for formula functions: LEFT, LEN, LENB, MID, MIDB, RIGHT and RIGHTB, related issue #1476
    • The CalcCellValue function now returns formula error string in the result, and using the error message in returns error, related issue #1490
    • Case-insensitive for the image file extension name, related issue #1503
    • The stream writer will be skip set cell value when got nil value, related issue #756
    • The GetCellHyperLink function support get cell hyperlink for merged cells
    • Add new exported data type ChartType for represents chart type enumeration

    Improve the Compatibility

    • Add support for workbook function groups
    • Add support for strict theme namespace, related issue #1447
    • Fix panic caused by the workbook relationship part not exist
    • Improve compatibility with SST index which contains blank characters, related issue #1508

    Bug Fixes

    • Fix decimal number format round issue in some cases
    • Fix incorrect cell type when modifying string cell with the time number, resolve issue #1464
    • Fix cell resolver caused incorrect calculation result, resolve issue #1469
    • Fix conditional format data bar min/max value doesn't work, resolve issue #1492
    • Supports 0 row height and column width, resolve issue #1461

    Performance

    • Improve performance for apply number format with month name, related issue #1455
    • Speed up for checking merged cells, related issue #1448

    Miscellaneous

    • A pure WebAssembly / Javascript port of Go Excelize library named excelize-wasm NPM package has been production-ready use
    • The dependencies module has been updated
    • Unit tests and godoc updated
    • Using the specialized name in variables and functions
    • Documentation website with multilingual: Arabic, German, Spanish, English, French, Russian, Chinese, Japanese, and Korean, which has been updated

    Thank you

    Thanks for all the contributors to Excelize. Below is a list of contributors that have code contributions in this version:

    • @liron-l (Liron Levin)
    • @nathj07 (Nathan Davies)
    • @Josh-Weston (Josh Weston)
    • @jaby
    • @FlowingSPDG (Shugo Kawamura)
    • @barismar (Baris Mar Aziz)
    • @doingNobb (张涛)
    • @rpoetrap (Rizki Putra)
    • @huangshaokun
    • @CHANTXU64 (ChantXu64)
    • @playGitboy
    Downloads
  • v2.7.0 5429f131f8

    v2.7.0 Stable

    xuri released this 2023-01-07 16:23:53 +00:00 | 181 commits to master since this release

    We are pleased to announce the release of version 2.7.0. Featured are a handful of new areas of functionality and numerous bug fixes.

    A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.

    Release Notes

    The most notable changes in this release are:

    Breaking Change

    • Upgrade requirements Go language version is 1.16 or later, for migration of deprecation package ioutil
    • Checking and return error for invalid sheet name instead of trim invalid characters
    • The GetCellStyle function no longer return master cell style of the merge cell range
    • Rename 5 exported data types and error constant:
      • Rename PivotTableOption to PivotTableOptions
      • Rename FormatHeaderFooter to HeaderFooterOptions
      • Rename FormatSheetProtection to SheetProtectionOptions
      • Rename SparklineOption to SparklineOptions
      • Rename ErrExistsWorksheet to ErrExistsSheet
    • Remove 54 exported types: 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 and ZoomScale
    • Remove 2 exported constants: OrientationPortrait and OrientationLandscape
    • Change 21 functions signature:
      • Change the func (f *File) SetPageLayout(sheet string, opts ...PageLayoutOption) error to func (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error
      • Change the func (f *File) GetPageLayout(sheet string, opts ...PageLayoutOptionPtr) error to func (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error)
      • Change the func (f *File) SetPageMargins(sheet string, opts ...PageMarginsOptions) error to func (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error
      • Change the func (f *File) GetPageMargins(sheet string, opts ...PageMarginsOptionsPtr) error to func (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error)
      • Change the func (f *File) GetSheetIndex(sheet string) int to func (f *File) GetSheetIndex(sheet string) (int, error)
      • Change the func (f *File) SetSheetName(source, target string) to func (f *File) SetSheetName(source, target string) error
      • Change the func (f *File) GetSheetVisible(sheet string) to func (f *File) GetSheetVisible(sheet string) (bool, error)
      • Change the func (f *File) DeleteSheet(sheet string) to func (f *File) DeleteSheet(sheet string) error
      • Change the func (f *File) NewSheet(sheet string) int to func (f *File) NewSheet(sheet string) (int, error)
      • Change the func (f *File) NewConditionalStyle(style string) (int, error) to func (f *File) NewConditionalStyle(style *Style) (int, error)
      • Change the func (f *File) NewStyle(style interface{}) (int, error) to func (f *File) NewStyle(style *Style) (int, error)
      • Change the func (f *File) AddChart(sheet, cell, opts string, combo ...string) error to func (f *File) AddChart(sheet, cell string, chart *ChartOptions, combo ...*ChartOptions) error
      • Change the func (f *File) AddChartSheet(sheet, opts string, combo ...string) error to func (f *File) AddChartSheet(sheet string, chart *ChartOptions, combo ...*ChartOptions) error
      • Change the func (f *File) AddShape(sheet, cell, opts string) error to func (f *File) AddShape(sheet, cell string, opts *Shape) error
      • Change the func (f *File) AddPicture(sheet, cell, picture, format string) error to func (f *File) AddPicture(sheet, cell, picture string, opts *GraphicOptions) error
      • Change the func (f *File) AddPictureFromBytes(sheet, cell, opts, name, extension string, file []byte) error to func (f *File) AddPictureFromBytes(sheet, cell, name, extension string, file []byte, opts *GraphicOptions) error
      • Change the func (f *File) AddTable(sheet, hCell, vCell, opts string) error to func (f *File) AddTable(sheet, rangeRef string, opts *TableOptions) error
      • Change the func (sw *StreamWriter) AddTable(hCell, vCell, opts string) error to func (sw *StreamWriter) AddTable(rangeRef string, opts *TableOptions) error
      • Change the func (f *File) AutoFilter(sheet, hCell, vCell, opts string) error to func (f *File) AutoFilter(sheet, rangeRef string, opts *AutoFilterOptions) error
      • Change the func (f *File) SetPanes(sheet, panes string) error to func (f *File) SetPanes(sheet string, panes *Panes) error
      • Change the func (f *File) SetConditionalFormat(sheet, reference, opts string) error to func (f *File) SetConditionalFormat(sheet, rangeRef string, opts []ConditionalFormatOptions) error
    • Introduce new function to instead of existing functions:
      • Use SetSheetProps instead of SetSheetPrOptions and SetSheetFormatPr
      • Use GetSheetProps instead of GetSheetPrOptions and GetSheetFormatPr
      • Use SetSheetView instead of SetSheetViewOptions
      • Use GetSheetView instead of GetSheetViewOptions
      • Use SetWorkbookProps instead of SetWorkbookPrOptions
      • Use GetWorkbookProps instead of GetWorkbookPrOptions
      • Use InsertRows instead of InsertRow for support inserting multiple rows at once
      • Use InsertCols instead of InsertCol for support inserting multiple columns at once
    • Add CellTypeFormula, CellTypeInlineString, CellTypeSharedString and remove CellTypeString in CellType enumeration
    • The parameter has been changed for the AddComment function, support create rich-text in comments, related issue #1204
    • Remove internal error log print, an error will be returned when XML deserialize error, add error return value for the GetComments, GetDefaultFont and SetDefaultFont functions

    Notable Features

    • Add new functions GetDataValidations and GetConditionalFormats for get data validations and conditional formats, related issue #827
    • Add new functions ProtectWorkbook and UnprotectWorkbook for workbook protection supports
    • Add new function SetSheetCol for set worksheet column cells, related issue #1247
    • Add new function GetColStyle for set column styles, related issue #1293
    • Add new function SetSheetBackgroundFromBytes for set background picture by given image data, related issue #1405
    • Add new export variable IndexedColorMapping
    • Add 20 export types: AutoFilterListOptions, AutoFilterOptions, Chart, ChartAxis, ChartDimension, ChartLegend, ChartLine, ChartMarker, ChartPlotArea, ChartSeries, ChartTitle, ConditionalFormatOptions, PaneOptions, Panes, GraphicOptions, Shape, ShapeColor, ShapeLine, ShapeParagraph and TableOptions
    • New support 2 formula functions: AGGREGATE and SUBTOTAL
    • The Save, Write and WriteTo function now accept saving options, related issue #744
    • The AddChart function support specify if smooth line of the line chart, related issue #1290
    • The AddChart function support set custom line color in the charts, related issue #1345
    • The AddChart function support custom chart axis font style, related issue #320
    • The AddChart function support create 3D line chart
    • The functions SetColWidth, GetColWidth, SetColVisible, GetColVisible, SetColStyle and GetColStyle now support concurrency safe
    • An error will be returned when set the not exist style ID, related issue #1323
    • An error will be returned when setting the stream row without ascending row numbers, to avoid potential mistakes, related issue #1139
    • The stream writer will be apply style in RowOpts for each cell, related issue #1354
    • The stream writer support to set panes, related issue #1047
    • The stream writer support to set inline rich text cell
    • The stream writer support to insert the page break
    • New 7 exported errors: ErrUnprotectWorkbook, ErrUnprotectWorkbookPassword, ErrStreamSetPanes, ErrSheetNameBlank, ErrSheetNameInvalid, ErrSheetNameLength and ErrSheetNameSingleQuote has been added
    • Introduce 5 new export data types: HeaderFooterOptions, PageLayoutMarginsOptions, PageLayoutOptions, SheetPropsOptions, and ViewOptions
    • Support to set summary columns to appear to the right of detail in an outline
    • Support to set and get font color with theme and tint, related issue #1369
    • Support get cell value which contains a date in the ISO 8601 format
    • Support set and get font color with indexed color
    • Support update column style when inserting or deleting columns
    • The workbook Close function now support cleanup stream writer temporary files
    • The AddPicture function now allowing insert SVG format images

    Improve the Compatibility

    • Stream writer writes inline string type for string cell value, related issue #1377
    • Skip empty rows when saving the spreadsheet to reduce file size, related issue #1383

    Bug Fixes

    • Fix decimal number format round issue with build-in number format, resolve issue #1328, #1368 and #1373
    • Fix apply AM/PM number format issue in some case, resolve issue #1338
    • Fix the panic when delete comments caused by slice bounds out of range, resolve issue #1343
    • Fix the panic when get cell value in some case, resolve issue #1384 and #1415
    • Fix default number format parse issue with a long string of digits, resolve issue #1360
    • Fix creating a sheet with an empty name cause a corrupted file, resolve issue #1361
    • Fix get image content was empty after inserting image
    • Fix generate workbook corruption after insert columns/rows in some case
    • Delete shared formula in calc chain when writing a formula cell, to fix generate workbook corruption in some case
    • Normalize the sheet name to fix behavior regression between 2.6.0 & 2.6.1, resolve issue #1365
    • Fix the formula calculation result issue of the OR function
    • Fix error on inserting columns or rows on the worksheet which contains one cell merged cell range
    • Fix error on getting the range of merged cells on the worksheet which contains one cell merged cell range
    • Fix getting incomplete rich text cell value in some cases
    • Escape XML characters for stream writer to avoid with corrupt file, resolve issue #1391
    • Fix formula function ADDRESS result error with empty worksheet name, resolve issue #1396
    • Fix insert picture problem in some cases, resolve issue #1404

    Performance

    • Improve performance for stream writer merging cells, time cost decrease over 90% and reduce memory usage by about 86% at most
    • Improving performance for stream writer SetRow function, reduces memory usage over and speedup about 19%

    Miscellaneous

    • The dependencies module has been updated
    • Unit tests and godoc updated
    • Using the specialized name in variables and functions
    • Documentation website with multilingual: Arabic, German, Spanish, English, French, Russian, Chinese, Japanese, and Korean, which has been updated

    Thank you

    Thanks for all the contributors to Excelize. Below is a list of contributors that have code contributions in this version:

    • @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)
    Downloads
  • v2.6.1 ab12307393

    v2.6.1 Stable

    xuri released this 2022-08-20 17:09:32 +00:00 | 234 commits to master since this release

    We are pleased to announce the release of version 2.6.1. Featured are a handful of new areas of functionality and numerous bug fixes.

    A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.

    Release Notes

    The most notable changes in this release are:

    Breaking Change

    • Rename exported type TabColor to TabColorRGB
    • Rename exported constant TotalColumns to MaxColumns
    • Rename exported variable ErrMaxFileNameLength to ErrMaxFilePathLength
    • Rename exported variable ErrWorkbookExt to ErrWorkbookFileFormat
    • Remove exported variable ErrEncrypt
    • Change worksheet name case-insensitive

    Notable Features

    • New support 34 formula functions: CONVERT, COVARIANCE.S, DAVERAGE, DAYS360, DCOUNT, DCOUNTA, DGET, DMAX, DMIN, DPRODUCT, DSTDEV, DSTDEVP, DSUM, DVAR, DVARP, EDATE, EOMONTH, EUROCONVERT, GROWTH, HYPERLINK, MINVERSE, MMULT, NETWORKDAYS, NETWORKDAYS.INTL, PEARSON, RSQ, SKEW.P, SLOPE, STDEVPA, STEYX, TREND, WEEKNUM, WORKDAY, WORKDAY.INTL
    • New function DeleteComment support to delete comment, related issue #849
    • The AddShape function now support assigning a macro to the shape
    • Add support for the 1900 and 1904 date system, related issue #1212
    • Add support update cell hyperlink, related issue #1217
    • The AddPicture function now allowing insert EMF, WMF, EMZ and WMZ format images, related issue #1225
    • Make workbook open failed exception message clear, new exported variable ErrWorkbookPassword for the error message on receiving the incorrect workbook password
    • New exported constants MinFontSize, MinColumns and MaxCellStyles
    • Add array formula support for the formula calculation engine
    • Support for workbook encryption by password, related issue #199
    • RichTextRun support set superscript and subscript by vertAlign attribute
    • The DeleteDataValidation function support deleting all data validations in the worksheet, related issue #1254
    • Formula calculation engine support percentile symbol in condition criteria expression
    • Formula calculation engine support dependence formulas calculation, related issue #1262
    • Add export option MaxCalcIterations for specifies the maximum iterations for iterative calculation
    • Add export type ColorMappingType for color transformation types enumeration
    • Support adjust table range when removing and inserting column/row
    • Support set and get color index, theme and tint for sheet tab, related issue #1283
    • Add new export function GetRowOpts for rows iterator, to support get rows properties, related issue #1296

    Improve the Compatibility

    • Improve the compatibility with invalid internal styles count, resolve issue #1211
    • Improve the compatibility with Google Sheet, resolve issue #1244 and #1314
    • Stream writer now skips writing nil values when set cells value for the row, related issue #1299

    Bug Fixes

    • Fix generated file corrupted when the same field is used for pivot table data and rows/columns, resolve issue #1203
    • Fix get incorrect rich text value caused by missing cell type checking, resolve issue #1213
    • Fix incorrect cell data types casting results when number formatting, resolve issue #1219
    • Fix the read cell is empty when the cell is in 0 placeholder number format style, resolve issue #1312 and #1313
    • Fix set cell value with column and row style inherit issue, resolve issue #1163
    • Fix panic when adding pane on empty sheet views worksheet
    • Fix the problem of multi arguments formula calculation in some case
    • Fix generated file corrupted caused by incorrect worksheet header footer fields order, resolve issue #1257
    • Fix set cell value failed in some case, resolve issue #1264
    • Fix the panic when set or get sheet view options on the sheet without views options
    • Fix generated workbook corruption caused by empty created or modified dcterms in the document core properties
    • Fix doc properties missing after creating new worksheet, resolve issue #1298

    Performance

    • Improve performance for set sheet row and the merging cells, fix performance impact when resolving issue #1129
    • Optimization formula calculation performance
    • Reduces memory usage and speedup the AddComment function, resolve issue #1310

    Miscellaneous

    • The dependencies module has been updated
    • Unit tests and godoc updated, made the test case compatible with go1.19
    • Documentation website with multilingual: Arabic, German, Spanish, English, French, Russian, Chinese, Japanese, and Korean, which has been updated

    Thank you

    Thanks for all the contributors to Excelize. Below is a list of contributors that have code contributions in this version:

    • @JDavidVR (David)
    • @sceneq
    • @Juneezee (Eng Zer Jun)
    • @MichealJl (jialei)
    • @ww1516123
    • @z-hua (z.hua)
    • @xdlrt (yeshu)
    • @eaglexiang (Eagle Xiang)
    • @MJacred
    • @ReganYue (Regan Yue)
    • @thomascharbonnel (Thomas Charbonnel)
    • @ee0703 (EE)
    • @NaturalGao (NaturalGao)
    • @Sangua633
    Downloads
  • v2.6.0 c1940c2a1e

    v2.6.0 Stable

    xuri released this 2022-04-10 16:04:00 +00:00 | 299 commits to master since this release

    We are pleased to announce the release of version 2.6.0. Featured are a handful of new areas of functionality and numerous bug fixes.

    A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.

    Release Notes

    The most notable changes in this release are:

    Breaking Change

    • Rename exported constants NameSpaceDublinCoreMetadataIntiative to NameSpaceDublinCoreMetadataInitiative for typo fix
    • Rename exported variable ErrUnsupportEncryptMechanism to ErrUnsupportedEncryptMechanism
    • Rename exported variable ErrDataValidationFormulaLenth to ErrDataValidationFormulaLength
    • Rename exported variable ErrDefinedNameduplicate to ErrDefinedNameDuplicate
    • Remove exported variable XMLHeaderByte
    • Remove second useless parameter isCurrentSheet and error returns of the function SetSqrefDropList
    • Remove TotalRows of row iterator

    Notable Features

    • ProtectSheet now support protect sheet with specify algorithm: XOR, MD4, MD5, SHA1, SHA256, SHA384, and SHA512
    • UnprotectSheet now support specified the second optional password parameter to remove sheet protection with password verification
    • New support 71 formula functions: AVERAGEIFS, BETADIST, BETA.DIST, BETAINV, BETA.INV, BINOMDIST, BINOM.DIST, BINOM.DIST.RANGE, BINOM.INV, CHIINV, CHITEST, CHISQ.DIST, CHISQ.DIST.RT, CHISQ.INV, CHISQ.INV.RT, CHISQ.TEST, CONFIDENCE.T, CORREL, COVAR, COVARIANCE.P, CRITBINOM, ERROR.TYPE, EXPON.DIST, EXPONDIST, F.DIST, F.DIST.RT, FDIST, F.INV, F.INV.RT, FINV, FORMULATEXT, F.TEST, FTEST, GAMMA.DIST, GAMMADIST, GAMMA.INV, GAMMAINV, GAMMALN.PRECISE, GAUSS, HOUR, HYPGEOM.DIST, HYPGEOMDIST, INDIRECT, LOGINV, LOGNORM.DIST, LOGNORMDIST, LOGNORM.INV, MODE, MODE.MULT, MODE.SNGL, NEGBINOM.DIST, NEGBINOMDIST, PHI, SECOND, SERIESSUM, SUMIFS, SUMPRODUCT, SUMX2MY2, SUMX2PY2, SUMXMY2, T.DIST, T.DIST.2T, T.DIST.RT, TDIST, TIMEVALUE, T.INV, T.INV.2T, TINV, T.TEST, TTEST, TYPE
    • Check file extension on save the workbook
    • Support workbook views mode and ruler display settings
    • Improve number format support, introduced NFP (number format parser) dependencies module for custom dates and times number format and text place holder support, include local month name and AM/PM format in 19 languages (Afrikaans, Bangla, Chinese, English, French, German, Austria, Irish, Italian, Russian, Spanish, Thai, Tibetan, Turkish, Welsh, Wolof, Xhosa, Yi and Zulu) support for number format, related issues #660, #764, #1093, #1112, #1133
    • New exported functions SetWorkbookPrOptions and GetWorkbookPrOptions to support setting and getting the FilterPrivacy and CodeName properties of the workbook, resolve limitations when adding VBA project to the workbook, related issue #1148
    • Formula engine now support calculation with the none parameter formula function after infix operator notation
    • Support to read boolean data type cell value
    • Support set hole size when create the doughnut chart by AddChart function, resolve issue #1172
    • Export 4 errors ErrPasswordLengthInvalid, ErrUnsupportedHashAlgorithm, ErrUnsupportedNumberFormat, ErrWorkbookExt so users can act differently on the different type of errors

    Improve the Compatibility

    • Improve compatibility with LibreOffice, fixed the issue auto filter doesn't work on LibreOffice if the sheet name has spaces, resolve issue #1122
    • Improve the compatibility with alternate content, support preserve alternate content in the workbook, worksheet, and drawingML
    • Improve the compatibility with page setup DPI fields

    Bug Fixes

    • Fix missing page setup of worksheet after re-saving the spreadsheet, resolve issue #1117
    • Fix merged cells doesn't updated after opertaion in some cases
    • Fix style parsing issue, which causes bold and other style missing, resolve issue #1119
    • Fix file corrupted when save as in XLAM / XLSM / XLTM / XLTX extension in some case
    • Correct cells style in merge range, make cell support inheritance columns/rows style, resolve issue #1129
    • Fix incorrect style ID returned on getting cell style in some cases
    • Fix incorrect build-in number format: 42
    • Fixed parsing decimal precision issue in some case
    • SetCellDefault support non-numeric value, resolve issue #1139
    • Fixed show sheet tabs setting was missing on save as spreadsheet in some cases, resolve issue #1160
    • Fix nested formula calculation result error, resolve issue #1164
    • Fix a part of formula function calculation result precision issue and inconsistent result precision of formula calculation under x86 and arm64 processor (CPU) architecture
    • This fix scientific notation parsing issue in some case
    • Fix the issue that the chart axis maximum and minimum didn't work when the value is 0

    Performance

    • Improve streaming reading performance, based on the previously released version, reduce memory usage by about 50% at most for reading large data spreadsheet, and reduce 80% GC times for the row's iterator

    Miscellaneous

    • The dependencies module has been updated
    • Unit tests and godoc updated
    • Documentation website with multilingual: Arabic, German, Spanish, English, French, Russian, Chinese, Japanese, and Korean, which has been updated
    Downloads
  • v2.5.0 e37e060d6f

    v2.5.0 Stable

    xuri released this 2021-12-30 16:00:01 +00:00 | 360 commits to master since this release

    We are pleased to announce the release of version 2.5.0. Featured are a handful of new areas of functionality and numerous bug fixes.

    A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.

    Release Notes

    The most notable changes in this release are:

    Breaking Change

    • Close spreadsheet and row's iterator required, the user should be close the stream after using the row's iterator, and close the spreadsheet after opening an existing spreadsheet
    • Change ReadZipReader as an implementation of the File, extract spreadsheet with given options, and support extract in memory or touching the filesystem
    • Remove unnecessary exported variable XMLHeader, we can using encoding/xml package's xml.Header instead of it
    • Remove unused exported error variable ErrToExcelTime

    Notable Features

    • New API: SetRowStyle support for set style for the rows, related issue #990
    • New API: GetCellType support for get the cell's data type, related issue #417 and #520
    • New API: SetAppProps and GetAppProps support to set and get document application properites, related issue #1095
    • GetCellValue, GetRows, GetCols, Rows and Cols support to specify read cell with raw value, related issue #621
    • New support 95 formula functions: ACCRINT, ACCRINTM, ADDRESS, AMORDEGRC, AMORLINC, AVEDEV, AVERAGEIF, CHIDIST, CONFIDENCE, CONFIDENCE.NORM, COUNTIF, COUNTIFS, COUPDAYBS, COUPDAYS, COUPDAYSNC, COUPNCD, COUPNUM, COUPPCD, DATEVALUE, DAY, DAYS, DELTA, DEVSQ, DISC, DURATION, ERF, ERF.PRECISE, ERFC, ERFC.PRECISE, GEOMEAN, GESTEP, IFNA, IFS, INDEX, INTRATE, ISFORMULA, ISLOGICAL, ISREF, ISOWEEKNUM, MATCH, MAXA, MAXIFS, MDURATION, MINIFS, MINUTE, MONTH, ODDFPRICE, PERCENTILE.EXC, PERCENTRANK.EXC, PERCENTRANK.INC, PERCENTRANK, PRICE, PRICEDISC, PRICEMAT, PV, QUARTILE.EXC, RANK, RANK.EQ, RATE, RECEIVED, RRI, SHEETS, SLN, STANDARDIZE, STDEV.P, STDEVP, SWITCH, SYD, TBILLEQ, TBILLPRICE, TBILLYIELD, TEXTJOIN, TIME, TRANSPOSE, TRIMMEAN, VALUE, VAR, VAR.S, VARA, VARPA, VDB, WEEKDAY, WEIBULL, WEIBULL.DIST, XIRR, XLOOKUP, XNPV, XOR, YEAR, YEARFRAC, YIELD, YIELDDISC, YIELDMAT, Z.TEST, ZTEST, related issue #1002
    • Formula calculation engine support nested calc for IF formula, related issue #987
    • Formula calculation engine support get shared formula, related issue #844
    • Formula calculation engine support text comparison, related issue #998
    • Support specify the formula in the data validation range, related issue #1012
    • Support specified unzip size limit on open file options, avoid zip bombs vulnerability attack
    • SetCellFormula now support set the shared formula
    • UpdateLinkedValue will skip macro sheet, related issue #1014
    • Fix AddPicture created duplicate image in some cases, caused by incorrect internal relationships ID calculation, related issue #1017
    • AddShape support set line width of add the shape, related issue #262
    • New options UnzipXMLSizeLimit have been added, support to specifies the memory limit on unzipping worksheet and shared string table in bytes
    • An error will be returned if given an invalid custom number format when creating a new style, related issue #1028
    • Now support set row style in the stream writer
    • Stream writer will create a time number format for time type cells, related issue #1107
    • Now support specify compact and outline for the pivot table, related issue #1029
    • Support get current rows/columns and total rows/columns in the stream reader, related PR #1054
    • Now support time zone location when set cell value, related issue #1069
    • Export 7 errors so users can act differently on different type of errors

    Improve the Compatibility

    • Improve compatibility with row element with r="0" attribute
    • Preserve XML control character
    • Improve the compatibility of style settings with Apple Numbers, related issue #1059
    • Support multi-byte language on set header footer, related issue #1061
    • Preserve horizontal tab character when set the cell value, related issue #1108

    Bug Fixes

    • Fix the data validation deletion failed, resolve issue #979
    • Fix set data validation drop list failed in some cases, resolve issue #986
    • Fix formula calculation engine LOOKUP doesn't handle array form correctly, resolve issue #994
    • Fix formula calculation engine LOOKUP can only find exact match, resolve issue #997
    • Fix formula percentages calculated incorrectly, resolve issue #993
    • Fix panic caused by incorrect cell read on some case
    • Fix conditional format bottom N not working
    • Fix time parse accuracy issue, resolve issue #1026 and #1030
    • Fix build-in scientific number format failed, resolve issue #1027
    • Fix small float parse error in some case, resolve issue #1031
    • Fix worksheet deletion failed in some case
    • Fix build-in time number format parse error, resolve issue #1060
    • Fix NewStyle returned incorrect style ID in some case
    • Fix merged cell range error after row/column insert/deletion in some corner case

    Performance

    • Merge cell time cost speed up, based on the previously released version time cost decrease over 90%
    • Improve streaming reading performance, unzip shared string table to system temporary file when large inner XML, based on the previously released version, memory usage decreased about 60% at most, related issue #1096
    • Worksheet list read speed up
    • Merge column styles to reduce spreadsheet size, resolve issue #1057

    Miscellaneous

    • The dependencies module has been updated
    • Unit tests and godoc updated
    • Documentation website with multilingual: Arabic, German, Spanish, English, French, Russian, Chinese, Japanese, and Korean, which has been updated
    Downloads
  • v2.4.1 933159f939

    v2.4.1 Stable

    xuri released this 2021-08-01 16:00:26 +00:00 | 460 commits to master since this release

    We are pleased to announce the release of version 2.4.1. Featured are a handful of new areas of functionality and numerous bug fixes.

    A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.

    Release Notes

    The most notable changes in this release are:

    Breaking Change

    Change Go Modules import path to github.com/xuri/excelize/v2

    Notable Features

    • Support set column width in streaming mode, related issue #625
    • Support merge cell in streaming mode, related issue #826
    • New support 2 formula functions: BESSELK, BESSELY
    • The formula calculation engine now supports defined name references
    • Add disable option for chart xAxis and yAxis
    • The function AddPivotTable support reference source data range by defined name, relate issue #856
    • The following function now is concurrency safety, relate issue #861
    • Export 24 function's error message

    Improve the Compatibility

    • Improves compatibility for default XML namespace attributes, fix generated corrupted file in some case
    • Improves compatibility with non-standard page setup attributes, fix open spreadsheet failed in some case
    • Add count attribute in shared strings table
    • Remove UTC timezone requirement when setting cell value with time, related issue #409
    • Improves compatibility with XML control character in the escape literal string
    • Rename exported field File.XLSX to File.Pkg
    • Change the sheet names are not case sensitive for NewSheet, GetSheetIndex, DeleteSheet, resolve issue #873
    • Fix missing pivot attribute of conditional formatting, resolve issue #883
    • Improvement compatibility with invalid first-page number attribute in the page layout
    • Add maximum character limit and fix missing preserve character for SetCellRichText

    Bug Fixes

    • Fix 12/24 hours time format parsing error, resolve issue #823 and #841
    • Fix can't get comments by GetComments in some case, resolve issue #825
    • Fix issue when get and add comments on multi authors, resolve issue #829 and #830
    • Fix invalid file path and duplicate namespace when re-creating worksheet, resolve issue #834
    • Fix set outline attributes not work when the value of showOutlineSymbols, summaryBelow and summaryRight attributes are false
    • Avoid empty rows in the tail of the worksheet by GetRows, resolve issue #842
    • Fix missing formula cell when getting rows value, resolve issue #855
    • Fix comparison fails inside and outside IF function, resolve issue #858
    • Fix GetRowHeight actually get the height of the next row
    • Fix incorrect scope when getting and delete the defined name, resolve issue #879
    • Attribute LocalSheetID in the defined name should be equal to SheetIndex instead of SheetID
    • Fix missing set each cell's styles when set columns style, resolve issue #467
    • Prevent panic when an incorrect range is provided as PivotTableRange on creating a pivot table
    • Fix reading decimals precision issue, resolve issue #848 and #852
    • Escape XML character in the drop list, avoid corrupted file generated, resolve issue #971
    • Fix incorrect character count limit in the drop list, resolve issue #972
    • Fix high CPU usage on reading cell value with number format caused by Excel time parse issue in some case, resolve issue #974
    • Fix month parsing error in custom number format in some cases

    Performance

    • Reduce memory usage Save and SaveAs about 19% at most based on the previously released version

    Miscellaneous

    • Fix code security issue CWE-190 and CWE-681
    • The dependencies module has been updated
    • Unit tests and godoc updated
    • Use GitHub Action for unit testing
    • Documentation website with multilingual: Arabic, German, Spanish, English, French, Russian, Chinese, Japanese, and Korean, which has been updated
    Downloads
  • v2.4.0 d42834f3a8

    v2.4.0 Stable

    xuri released this 2021-04-18 16:00:34 +00:00 | 510 commits to master since this release

    We are pleased to announce the release of version 2.4.0. Featured are a handful of new areas of functionality and numerous bug fixes.

    A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.

    Release Notes

    The most notable changes in this release are:

    Breaking Change

    Upgrade requirements Go language version is 1.15 or later.

    Notable Features

    • New API GetCellRichText support to get the rich text of cell by given worksheet
    • Now support to set and get: print scaling, print black and white, and specified the first printed page number of the worksheet by SetPageLayout and GetPageLayout
    • Now support to change and get tab color of the worksheet by SetSheetPrOptions and GetSheetPrOptions
    • SetCellHyperlink now support to set hyperlink display & tooltips text, related issue #790
    • Support ShowError option when adding the pivot table
    • Support setting formula for cell in streaming API, related issue #625
    • The formula calculation engine now supports not equal operator
    • The nested formula function now supports cell references as arguments
    • Support to specifies that each data marker in the series has a different color
    • New support 152 formula functions: ATAN, AVERAGE, AVERAGEA, BESSELI, BESSELJ, BIN2DEC, BIN2HEX, BIN2OCT, BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR, CHAR, CHOOSE, CLEAN, CODE, COLUMN, COLUMNS, COMPLEX, CONCAT, CONCATENATE, COUNT, COUNTBLANK, CUMIPMT, CUMPRINC, DATE, DATEDIF, DB, DDB, DEC2BIN, DEC2HEX, DEC2OCT, DOLLARDE, DOLLARFR, EFFECT, ENCODEURL, EXACT, FALSE, FIND, FINDB, FISHER, FISHERINV, FIXED, FV, FVSCHEDULE, GAMMA, GAMMALN, HARMEAN, HEX2BIN, HEX2DEC, HEX2OCT, HLOOKUP, IF, IFERROR, IMABS, IMAGINARY, IMARGUMENT, IMCONJUGATE, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMDIV, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER, IMPRODUCT, IMREAL, IMSEC, IMSECH, IMSIN, IMSINH, IMSQRT, IMSUB, IMSUM, IMTAN, IPMT, IRR, ISTEXT, ISPMT, KURT, LARGE, LEFT, LEFTB, LEN, LENB, LOOKUP, LOWER, MAX, MID, MIDB, MIN, MINA, MIRR, N, NOMINAL, NORM.DIST, NORMDIST, NORM.INV, NORMINV, NORM.S.DIST, NORMSDIST, NORM.S.INV, NORMSINV, NOT, NOW, NPER, NPV, OCT2BIN, OCT2DEC, OCT2HEX, PDURATION, PERCENTILE.INC, PERCENTILE, PERMUT, PERMUTATIONA, PMT, POISSON.DIST, POISSON, PPMT, PROPER, QUARTILE, QUARTILE.INC, REPLACE, REPLACEB, REPT, RIGHT, RIGHTB, ROMAN, ROW, ROWS, SHEET, SKEW, SMALL, STDEV, STDEV.S, STDEVA, SUBSTITUTE, T, TODAY, TRIM, TRUE, UNICHAR, UNICODE, UPPER, VAR.P, VARP, VLOOKUP

    Improve the Compatibility

    • Now set the empty string for the cell when SetCellValue with nil, resolve issue #756
    • Remove useless internal XML omitempty tag on style pattern fill color
    • Fix compatibility issue of Google Sheets offline browser extension #769
    • Use absolute reference in the auto filters defined name to make it compatible with OpenOffice, resolve issue #776
    • Handle end element event in the worksheet row/column iterator XML SAX parser, faster row/column iterate and fix inconsistent read rows count of the file in some case
    • Improves compatibility for worksheet relative XML path
    • Avoid duplicate rich text string items #787
    • Improves compatibility for absolute XML path, Windows-style directory separator, and inline namespace

    Bug Fixes

    • Fix round precision issue #764
    • Add missing fields and change the order of the fields of workbook fields, prevent generate the corrupted file in some case, resolve issue #766
    • Fix hyperbolic cotangent calculation incorrect
    • Correct adjust calculation chain in duplicate rows, resolve issue #774
    • Correct adjust defined name in the workbook when deleting a worksheet, resolve issue #775
    • Fix cyclomatic complexity issue of internal function newFills and parseToken
    • Fix custom row height check issue
    • Fix unmerge all cells cause corrupted file, resolve issue #782
    • Fix part of auto filter rules missing after saved
    • Fix UpdateLinkedValue which returns an error when has chart sheet or dialog sheet
    • Fix incorrect default column from GetColWidth in some case
    • Fix can't add timelines and slicers for a pivot table in a generated spreadsheet, resolve issue #804
    • Fix incorrect SetDefinedName's localSheetId attribute to use sheetIndex
    • Fix missing cell locked or hidden protection in some case, resolve issue #809
    • Fix streaming data writer result missing after call normal API, resolve issue #813
    • Fix the negative values series missing chart color issue

    Performance

    • Faster numeric precision process

    Miscellaneous

    • The dependencies module has been updated
    • Unit tests and godoc updated
    • Documentation website with multilingual: Arabic, German, Spanish, English, French, Russian, Chinese, Japanese, and Korean, which has been updated
    • Welcome join the Slack channel or Telegram Group to meet other members of our community
    Downloads
  • v2.3.2 71829c5202

    v2.3.2 Stable

    xuri released this 2020-12-26 16:18:54 +00:00 | 574 commits to master since this release

    We are pleased to announce the release of version 2.3.2. Featured are a handful of new areas of functionality and numerous bug fixes.

    A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.

    Release Notes

    The most notable changes in this release are:

    Notable Features

    • The function AddPivotTable now support none-column and multi-data fields, relate issue #710
    • The function GetCellValue support custom date-time number format, relate issue #703
    • The function CalcCellValue now support new formula function AND, CLEAN, TRIM, LOWER, PROPER, UPPER and OR, relate issue #701 and #747
    • The range of data validation now supports float decimal, relate issue #739
    • The function AddChart now support to set marker type and custom line width, relate issue #549 and #657

    Improve the Compatibility

    • Improve over 6 series line chart compatibility with KingSoft WPS™, resolve #627
    • Avoid creating duplicate inner style in some case
    • Parse document core part (workbook) dynamically
    • Support single line with repeated row element in the worksheet data, resolve #732

    Bug Fixes

    • Prevent formula lexer panic on retrieving the top token type on some invalid formula, resolve issue #711
    • Fix missing worksheet when renaming with same names, resolve issue #713
    • Fix wrong worksheet index returned by NewSheet in some cases, resolve issue #714
    • Fix panic on formatted value with no built-in number format ID, resolve issue #715 and #741
    • Rounding numeric with precision for formula calculation, resolve issue #727
    • Fix row duplicate mechanism #729
    • Fix incorrect active tab after delete worksheet in some cases, resolve issue #735
    • Fix AddPicture autofit failure with multi merged cells, resolve issue #748

    Performance

    • Stream writing memory usage decrease about 60%, relate issue #659
    • Optimize memory allocation workSheetWriter, relate issue #722
    • Improve AddPicture performance, relate issue #706

    Miscellaneous

    • Unit tests and godoc updated
    • Documentation website with multilingual: English, French, Russian, Chinese, Japanese, and Korean, which has been updated, 3 new language: Arabic, German and Spanish language version docs published
    • Welcome join the Slack channel or Telegram Group to meet other members of our community
    Downloads