Recent Releases of https://github.com/qax-os/excelize
https://github.com/qax-os/excelize - v2.9.1
We are pleased to announce the release of version 2.9.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.23 or later, for upgrade of dependency package
golang.org/x/crypto - Change the data type of
DataValidationType,DataValidationErrorStyle,DataValidationOperator,PictureInsertTypefrominttobyte - SetCellInt function required
int64data type parameter, resolve issue #2068 - When adding drawing objects such as pictures, charts, shapes, and form controls, the offset setting will no longer affect the size of the drawing object, related issue #2001
Notable Features
- Add new fields
GapWidthandOverlapin theChartdata type - Add new fields
ShowDataTableandShowDataTableKeysfields in theChartPlotAreadata type - Add new field
Alignmentin theChartAxisdata type - Add new field
DataLabelin theChartSeriesdata type - Add new field
PageOrderforPageLayoutOptionsdata type - Add 2 new exported error variables:
ErrPageSetupAdjustToandErrStreamSetColStyle - Add 2 new exported enumerations:
HeaderFooterImagePositionTypeandIgnoredErrorsType - Add 2 new exported data types:
CalcPropsOptionsandHeaderFooterImageOptions - Add 2 new functions:
SetCalcPropsandGetCalcPropssupport setting and getting workbook calculation properties - Add new
CultureNameJaJP,CultureNameKoKRandCultureNameZhTWenumeration values, support apply number format for the Japanese calendar years, the Korean Danki calendar and the Republic of China year, related issue #1885 - Add new function
AddHeaderFooterImageto support set graphics in a header and footer, related issue #1395 - Add new function
AddIgnoredErrorssupport to ignored error for a range of cells, related issue #2046 - Add new function
SetColStylefor streaming writer to support set columns style, related issue #2075 - The
AddChartandAddChartSheetfunction support set chart axis text direction and rotation, related issue #2025 - The
AddChartandAddChartSheetfunction support set gap width and overlap for column and bar chart, related issue #2033 - The
AddChartandAddChartSheetfunction support set the format of the chart series data label, related issue #2052 - The
AddChartandAddChartSheetfunction support set data table for chart, related issue #2117 - The
AddFormControlfunction support set cell link for check box, related issue #2113 - The
SetPageLayoutfunction support set page order of page layout - The
DeletePicturefunction support delete one cell anchor image, related issue #2059 - An error will be return if the option value of the
SetPageLayoutfunction is invalid - Support adjust data validations cross multiple worksheets, related issue #2072
- Support apply number format with hash and zero place holder, related issue #2058
- Support apply number format with
?symbol - Support to insert one cell anchor drawing object when specified the positioning as "oneCell", related issue #2002
Bug Fixes
- Fix a v2.9.0 regression bug, corrupted workbook generated by open the workbook generated by stream writer, resolve issue #2015
- Fix redundant none type pattern fill generated, resolve issue #2014
- Fix missing vertical and horizontal border styles in some case, resolve issue #2048
- Fix conditional format's border styles missing in some case, resolve issue #2061
- Fix get pivot tables panic in some case, resolve issues #1954 and #2051
- Fix
GetStylefunction can not getVertAlignformat - Fix
CalcCellValuefunction subexpressions aren't correctly calculated in some case, resolve issue #2083 - Fix delete wrong images in some case which caused by image reference detection issue
- Fix cell default style doesn't override by none-zero row style when set row by stream writer
- Fix redundant
colselement generated by stream writer - Fix panic on set chart title font, resolve issue #2102
- Fix panic on delete calc chain in some case
- Fix incorrect formula calculation result caused by shared formula parse error, resolve issue #2056
- Fix corrupted workbook generated when an inner ZIP64 file size exceeds 4GB
- Fix sheet name error in defined name after rename sheet, resolve issue #2126
Performance
- Use a 3 times faster deepcopy library
github.com/tiendc/go-deepcopyinstead ofgithub.com/mohae/deepcopy, related issue #2029 - Fix performance regression in v2.9.0, reduce trim cell value memory allocation for blank cells
- Improve performance for calculate formula when formula contains whole column and row reference
- Rows iterator speedup about 20%, memory allocation reduce about 10%
Miscellaneous
- The dependencies module has been updated
- Unit tests and godoc updated
- Documentation website with multilingual: Arabic, German, English, Spanish, French, Italian, Japanese, Korean, Portuguese, Russian, Chinese Simplified and Chinese Traditional, which has been updated.
- excelize-wasm NPM package release update for WebAssembly / JavaScript support
- excelize PyPI package release update for Python
Thank you
Thanks for all the contributors to Excelize. Below is a list of contributors that have code contributions in this version:
- @wushiling50
- @imirkin (Ilia Mirkin)
- @Juneezee (Eng Zer Jun)
- @Arpelicy
- @zhuhaicity (ZhuHaiCheng)
- @xxf0512 (xxf)
- @gypsy1234
- @mengpromax (MengZhongYuan)
- @hly-717
- @kurtinge (Kurt Inge Smådal)
- @IvanHristov98 (Ivan Hristov)
- @artur-chopikian (Artur Chopikian)
- @romanshevelev (Roman Shevelev)
- @LZCZ
- @hm3248
- @moisespsena (Moises P. Sena)
- @paolobarbolini (Paolo Barbolini)
- @timesince
- @shcabin
- @tgulacsi (Tamás Gulácsi)
- @R3dByt3 (R3dByt3)
- @Now-Shimmer
- Go
Published by xuri about 1 year ago
https://github.com/qax-os/excelize - v2.9.0
We are pleased to announce the release of version 2.9.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
- Change the data type for the
ConditionalFormatOptionsstructure fieldFormatas a pointer, resolve issue #1867
Notable Features
- Add new functions
DeleteSlicerandGetSlicers, related issue #810 - Add new function
MoveSheetto support changing sheet order in the workbook, related issue #1076 - Add new
AutoFitIgnoreAspectfield in theGraphicOptionsdata type support for fill the cell with the image and ignore its aspect ratio - Add new
TickLabelPositionfield in theChartAxisdata type support for set label position of the chart - Add new fields
ShowAll,InsertBlankRowandNumFmtfield in thePivotTableFielddata type - Add new fields
ClassicLayout,FieldPrintTitlesandItemPrintTitlesin thePivotTableOptionsdata type - Introduce 2 new exported enumeration type
ChartTickLabelPositionTypeandPictureInsertType - Introduce new exported
ChartLineUnsetenumeration value - Introduce 4 constants
ExtURIDataField,ExtURIPivotField,ExtURIPivotFilterandExtURIPivotHierarchy - Introduce new exported error variable
ErrPivotTableClassicLayout - The
MergeCellfunction support clear slave cells value when merging cells - The
AddDataValidation,DeleteDataValidationandGetCellStylefunctions support concurrency safe, related issues #1825 - The
GetDataValidationsfunction support get data validations which storage in the extension lists, related issue #1835 - The
SetSheetNamefunction support case sensitivity, related issue #1856 - The
GetPictureCellsandGetPicturesfunctions support for get the cell images inserted by IMAGE formula function and absolute paths for pictures - The
SetCellHyperLinkfunction support remove hyperlink byNonelinkType, related issue #1940 - The
AddChartfunction support create combo chart with same types, related issue #1940 - The
AddChartfunction support set line type of scatter chart - An error will be return if column header cell is empty in pivot table data range when create pivot table by
AddPivotTablefunction, related issue #1945 - Add support for applying number format expression with language/location tags and ID
- Add support for apply number format for time and duration cell value, related issue #2004
- New support formula function: DOLLAR
Improve the Compatibility
- Improve compatibility for apply number format, support apply number format with alignment, resolve issue #1847
- Improvement compatibility for the workbook internal part with a spreadsheet namespace prefix, resolve issue #1886
- Improve compatibility for the workbook internal media files with absolute path, resolve issue #1888
Bug Fixes
- Fix a v2.8.1 regression bug, auto filter doesn't work in the LibreOffice, resolve issue #1830
- Fix a v2.8.1 regression bug, support to adjust data validation with multiple cell range, resolve issue #1831
- Fix a v2.8.1 regression bug, error on duplicate rows, if conditional formatting or data validation has multiple cell range reference
- Fix a v2.8.1 regression bug, incorrect cell value written if save multiple times, resolve issue #1906
- Fix a v2.8.1 regression bug, spark lines duplicate when creating spark lines on multiple sheets, resolve issue #1910
- The
CalcCellValuefunction support calculate formula functions ISNUMBER, OR and FIND with matrix arguments, resolve issue #1819 - Fix the
CalcCellValuefunction calculation result round issue, resolve issue #1851 - Fix the
CalcCellValuefunction returns incorrect result of formula functions XIRR and XNPV, resolve issue #1989 - Fix the
RemoveColreturns error when deleting columns, resolve issue #1829 - Fix incorrect result data type of the DATE formula function, resolve issue #1833
- Fix panic on read workbook with internal row element without
rattribute - Fix parentheses in formulas get cut out when inserting new columns or rows, resolve issue #1861
- Fix incorrect data validation escape result in some cases
- Fix some character can't be displayed in stream writer, resolve issue #1865
- Saving workbook with sorted internal part path to keep same hash of identical files and fix incorrect MIME type, resolve issue #1889
- Fix the
AddChartfunction set axis format doesn't work in combo chart, resolve issue #1921 - Fix the
AddChartfunction set incorrect primary axis titles position - Fix the
AddChartfunction set secondary vertical axis title is not displayed, resolve issue #1926 - Fix the
AddChartfunction set line type of line chart does not work - Fix the
GetPivotTablesfunction returns incorrect data range, resolve issue #1937 - Fix the
GetStylefunction panic when theme withoutsysClr, resolve issue #1963 - Fix the
GetCellRichTextfunction returns error when read cell without SST index, resolve issue #1999 - Fix the
SetSheetVisiblefunction panic on none views sheet, resolve issue #1969 - Fix percent sign missing in formatted result for zero numeric cell value, resolve issue #1942
- Fix missing horizontal axis in scatter chart with negative values
- Fix missing shape macro missing after adjusted drawing object, resolve issue #1957
- Fix missing conditional formatting after remove column in some cases, resolve issue #1968
- Fix read cell value with decimal value round issue, resolve issue #1979
- Support to set cell value with an IEEE 754 "not-a-number" value or infinity, resolve issue #119
Performance
- Fix v2.8.0 regression speed slowdown and memory usage increase issue
- Reduce memory usage for the
GetRowsfunction, related issue #1874 - Optimize
ColumnNumberToNamefunction performance, reduce about 50% memory usage and 50% time cost
Miscellaneous
- The dependencies module has been updated
- Unit tests and godoc updated
- Documentation website with multilingual: Arabic, German, English, Spanish, French, Japanese, Korean, Portuguese, Russian, Chinese Simplified and Chinese Traditional, which has been updated. Added Italian version of the document
Thank you
Thanks for all the contributors to Excelize. Below is a list of contributors that have code contributions in this version:
- @mirgong (helloWorld)
- @YueChenXu-Kimi (岳晨旭)
- @JackMin1314 (陈王)
- @paolobarbolini (Paolo Barbolini)
- @iEvan-lhr (Evan lu)
- @yetyear (yeahyear)
- @ha5ky (hu5ky)
- @lizhichao (vic)
- @realzuojianxiang (realzuojianxiang)
- @msackman (Matthew Sackman)
- @yyle88 (yangyile-yyle88)
- @yunkeweb (yunkeweb)
- @iraj720 (Nima)
- @jianxinhou
- @barlevd
- @18409615759 (nna)
- @qijinkui (xiaokui)
- @user1121114685 (联盟少侠)
- @wangsongyan
- @vsemichev (Vovka Morkovka)
- @zhayt (Aybek)
- @ShowerBandV (ShowerBandV)
- @imink (Patrick Wang)
- @samkeke (wxy)
- @pjh591029530
- @zhangyimingdatiancai
- @wanghaochen2024
- @centurion-hub
- @peng (Zhang Zhipeng)
- @slashdotdash (Ben Smith)
- @ArcholSevier
- @liuwangchao
- @Zncl2222 (Jian Yu, Chen)
- Go
Published by xuri over 1 year ago
https://github.com/qax-os/excelize - v2.8.1
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
HeaderFooterOptionsstructure fieldsAlignWithMarginsandScaleWithDocas 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
GetPictureCellsfor get all picture cells, related issue #1218 - Add new exported function
GetConditionalStylefor get the conditional format style definition, related issue #1690 - Add new exported function
GetHeaderFooterfor get the worksheet header and footer - Add new exported function
AddSlicerfor adding table and pivot table slicers - Add new exported function
GetPivotTablesfor get pivot tables - Add new exported function
DeletePivotTablefor delete pivot table - Add a new
Namefield in thePivotTableOptionsto support specify pivot table name - New support 7 formula functions: DBCS, SEARCH, SEARCHB, TEXT, TEXTAFTER, TEXTBEFORE and xlfn.ANCHORARRAY
- Add export
ChartLineTypeenumeration to specify the chart line type, related issue #1706 - Add new
Borderfield in theChartdata type to set the chart area border - Add new
Typefield in theChartLinetype to set the line type - Add new exported source relationship and namespace
NameSpaceSpreadSheetXR10,ContentTypeSlicer,ContentTypeSlicerCache, andSourceRelationshipSlicer - 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
SetRowHeightfunction - The
SetRowHeightfunction will return an error if given an invalid row height value - The
AddChartfunction support set the data labels position for the chart, related issue #1704 - The
AddChartfunction support set solid color or transparent fill for chart area, plot area, and maker, add a new fieldFillinChart,ChartPlotArea, andChartMarkerdata type, related issue #1786 - The
AddChartfunction support set chart axis font family, size and strike style, related issue #1809 - Add new field
DataLabelPositionin theChartSeriesdata type, support to sets the position of the chart series data label - Add new field
BubbleSizein theChartdata type, support set the bubble size in all data series for the bubble chart or 3D bubble chart - Add new exported
ChartDataLabelPositionTypedata type - The
GetPictureCellsandGetPicturesfunction support get embedded cell images created by Kingsoft WPS™ Office, related issue #664 - The
SetConditionalFormatfunction 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
GetBaseColorfunction 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
Optionssettings of theOpenReader, 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
AutoFilterby 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
rattribute, resolve issue #1723 - Fix
GetCellRichTextreturns error on getting inline rich text cells - Fix invalid shared string table index on set cell value in some cases
- Fix
GetConditionalFormatspanic on get conditional format without above average rules, resolve issue #1745 - Fix incorrect adjust merged cells on remove rows, resolve issue #1749
- Fix the
SetConditionalFormatfunction creates incorrect multiple conditional formats rules priority, resolve issue #1770 - Fix the
GetConditionalFormatsfunction doesn't return gradient data bar rule, resolve issue #1769 - Fix the
GetStyleorGetConditionalStylefunction to returns incorrectDecimalPlacesfield value, resolve issue #1777 - Fix the
CalcCellValuefunction does not return raw value when enableRawCellValue, 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)
- Go
Published by xuri over 2 years ago
https://github.com/qax-os/excelize - v2.8.0
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
ErrTableNameLengthtoErrNameLength - Rename exported type
PaneOptionstoSelection - Rename the
Runsfield toParagraphin the exportedCommentdata type - Remove the
Langfield in theStyledata type - Removed exported
ChartTitledata type, and using theRichTextRundata type instead of it - Changed the data type for the
DecimalPlacesto pointer of integer - Change the default point to pixels conversion factor, resolve issues #279 and #1536
- Change the
AddShapefunction signature:func (f *File) AddShape(sheet, cell string, opts *Shape) errortofunc (f *File) AddShape(sheet string, opts *Shape) error
Notable Features
- Add new exported error variables
ErrExistsTableNameandErrorFormControlValue - Add new options
ShortDatePattern,LongDatePattern,LongTimePatternandCultureInfoin theOptionsdata type, related issue #1199 - Add new exported data type
CultureNameenumeration for country code - New functions
GetTablesandDeleteTablesupport to get and remove tables, related issues #674 and #1454 - New function
GetStylesupport 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
GetPanessupport to get sheet panes and view selection - New functions
AddFormControl,GetFormControlsandDeleteFormControlsupport to form controls, related issues #301 and #1169 - The
AddChartfunction support set primary titles, related issue #1553 - The
AddChartfunction support creating chart with a secondary series axis, related issue #518 - The
AddChartfunction support formatting and setting rich text titles for the chart, related issue #1588 - Add check for shape type for the
AddShapefunction, 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
GetPicturesfunction support read one cell anchor pictures, related issue #1585 - The
NewConditionalStylefunction 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
xlsxTabColordata type, using thexlsxColordata type instead ofxlsxTabColor - 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
- Go
Published by xuri almost 3 years ago
https://github.com/qax-os/excelize - v2.7.1
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
Colorfield in theChartLinedata type - Replace the data type
ShapeParagraphwithRichTextRun - Remove the
Colorfield from the typeShape, and uses theFillinstead of it - Remove the exported type
AutoFilterListOptions - Rename the exported type
TableOptionstoTable - The
AddChartfunction require usingChartTypeenumeration value to specify the chart type - Change 7 functions signature:
- Change the
func (f *File) AutoFilter(sheet, rangeRef string, opts *AutoFilterOptions) errortofunc (f *File) AutoFilter(sheet, rangeRef string, opts []AutoFilterOptions) error - Change the
func (f *File) AddPictureFromBytes(sheet, cell, name, extension string, file []byte, opts *GraphicOptions) errortofunc (f *File) AddPictureFromBytes(sheet, cell string, pic *Picture) error - Change the
func (f *File) GetPicture(sheet, cell string) (string, []byte, error)tofunc (f *File) GetPictures(sheet, cell string) ([]Picture, error) - Change the
func (f *File) AddVBAProject(bin string) errortofunc (f *File) AddVBAProject(file []byte) error - Change the
func (f *File) GetComments() (map[string][]Comment, error)tofunc (f *File) GetComments(sheet string) ([]Comment, error) - Change the
func (f *File) AddTable(sheet, rangeRef string, opts *TableOptions) errortofunc (f *File) AddTable(sheet string, table *Table) error - Change the
func (sw *StreamWriter) AddTable(rangeRef string, opts *TableOptions) errortofunc (sw *StreamWriter) AddTable(table *Table) error
- Change the
Notable Features
- Add new functions
SetSheetDimensionandGetSheetDimensionfor workbook dimension supports, related issue #1463 - The
NewStylefunction support to create of 17 kinds of fill variants styles - Increase max cell styles limit to 65430
- The
AddPicturefunction allowing insert BMP format images - The
GetPicturesfunction support to get multiple images in a cell - The
SetConditionalFormatfunction support to creating a conditional format with a "stop if true" or "icon sets" rule - The
SetConditionalFormatfunction support to set border color and create solid color for the color data bar, related issue #1462 - The
AddChartfunction support to set the format for the chart data series solid fill, related issue #1474 - The
AddChartfunction support to set the bubble size in a data series - The
AddChartfunction support to specifies the values in second plot for the bar/pie of pie chart - The
AddChartfunction support to set number format for chart data labels and axis, related issue #1499 - The
AddTablefunction support to specify if show header row of the table when create the table - The
AddTablefunction support to validate table name, and added a new error constantErrTableNameLength, related issue #1468 - The
AutoFilterfunction support to add multiple filter columns when create auto filter - The
CalcCellValuefunction support to specify if applying number format style for the cell calculation result - The
CalcCellValuefunction support double-byte chars for formula functions: LEFT, LEN, LENB, MID, MIDB, RIGHT and RIGHTB, related issue #1476 - The
CalcCellValuefunction 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
GetCellHyperLinkfunction support get cell hyperlink for merged cells - Add new exported data type
ChartTypefor 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
- Go
Published by xuri about 3 years ago
https://github.com/qax-os/excelize - v2.7.0
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
GetCellStylefunction no longer return master cell style of the merge cell range - Rename 5 exported data types and error constant:
- Rename
PivotTableOptiontoPivotTableOptions - Rename
FormatHeaderFootertoHeaderFooterOptions - Rename
FormatSheetProtectiontoSheetProtectionOptions - Rename
SparklineOptiontoSparklineOptions - Rename
ErrExistsWorksheettoErrExistsSheet
- Rename
- 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,ZeroHeightandZoomScale - Remove 2 exported constants:
OrientationPortraitandOrientationLandscape - Change 21 functions signature:
- Change the
func (f *File) SetPageLayout(sheet string, opts ...PageLayoutOption) errortofunc (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error - Change the
func (f *File) GetPageLayout(sheet string, opts ...PageLayoutOptionPtr) errortofunc (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error) - Change the
func (f *File) SetPageMargins(sheet string, opts ...PageMarginsOptions) errortofunc (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error - Change the
func (f *File) GetPageMargins(sheet string, opts ...PageMarginsOptionsPtr) errortofunc (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error) - Change the
func (f *File) GetSheetIndex(sheet string) inttofunc (f *File) GetSheetIndex(sheet string) (int, error) - Change the
func (f *File) SetSheetName(source, target string)tofunc (f *File) SetSheetName(source, target string) error - Change the
func (f *File) GetSheetVisible(sheet string)tofunc (f *File) GetSheetVisible(sheet string) (bool, error) - Change the
func (f *File) DeleteSheet(sheet string)tofunc (f *File) DeleteSheet(sheet string) error - Change the
func (f *File) NewSheet(sheet string) inttofunc (f *File) NewSheet(sheet string) (int, error) - Change the
func (f *File) NewConditionalStyle(style string) (int, error)tofunc (f *File) NewConditionalStyle(style *Style) (int, error) - Change the
func (f *File) NewStyle(style interface{}) (int, error)tofunc (f *File) NewStyle(style *Style) (int, error) - Change the
func (f *File) AddChart(sheet, cell, opts string, combo ...string) errortofunc (f *File) AddChart(sheet, cell string, chart *ChartOptions, combo ...*ChartOptions) error - Change the
func (f *File) AddChartSheet(sheet, opts string, combo ...string) errortofunc (f *File) AddChartSheet(sheet string, chart *ChartOptions, combo ...*ChartOptions) error - Change the
func (f *File) AddShape(sheet, cell, opts string) errortofunc (f *File) AddShape(sheet, cell string, opts *Shape) error - Change the
func (f *File) AddPicture(sheet, cell, picture, format string) errortofunc (f *File) AddPicture(sheet, cell, picture string, opts *GraphicOptions) error - Change the
func (f *File) AddPictureFromBytes(sheet, cell, opts, name, extension string, file []byte) errortofunc (f *File) AddPictureFromBytes(sheet, cell, name, extension string, file []byte, opts *GraphicOptions) error - Change the
func (f *File) AddTable(sheet, hCell, vCell, opts string) errortofunc (f *File) AddTable(sheet, rangeRef string, opts *TableOptions) error - Change the
func (sw *StreamWriter) AddTable(hCell, vCell, opts string) errortofunc (sw *StreamWriter) AddTable(rangeRef string, opts *TableOptions) error - Change the
func (f *File) AutoFilter(sheet, hCell, vCell, opts string) errortofunc (f *File) AutoFilter(sheet, rangeRef string, opts *AutoFilterOptions) error - Change the
func (f *File) SetPanes(sheet, panes string) errortofunc (f *File) SetPanes(sheet string, panes *Panes) error - Change the
func (f *File) SetConditionalFormat(sheet, reference, opts string) errortofunc (f *File) SetConditionalFormat(sheet, rangeRef string, opts []ConditionalFormatOptions) error
- Change the
- Introduce new function to instead of existing functions:
- Use
SetSheetPropsinstead ofSetSheetPrOptionsandSetSheetFormatPr - Use
GetSheetPropsinstead ofGetSheetPrOptionsandGetSheetFormatPr - Use
SetSheetViewinstead ofSetSheetViewOptions - Use
GetSheetViewinstead ofGetSheetViewOptions - Use
SetWorkbookPropsinstead ofSetWorkbookPrOptions - Use
GetWorkbookPropsinstead ofGetWorkbookPrOptions - Use
InsertRowsinstead ofInsertRowfor support inserting multiple rows at once - Use
InsertColsinstead ofInsertColfor support inserting multiple columns at once
- Use
- Add
CellTypeFormula,CellTypeInlineString,CellTypeSharedStringand removeCellTypeStringinCellTypeenumeration - The parameter has been changed for the
AddCommentfunction, 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,GetDefaultFontandSetDefaultFontfunctions
Notable Features
- Add new functions
GetDataValidationsandGetConditionalFormatsfor get data validations and conditional formats, related issue #827 - Add new functions
ProtectWorkbookandUnprotectWorkbookfor workbook protection supports - Add new function
SetSheetColfor set worksheet column cells, related issue #1247 - Add new function
GetColStylefor get column styles, related issue #1293 - Add new function
SetSheetBackgroundFromBytesfor 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,ShapeParagraphandTableOptions - New support 2 formula functions: AGGREGATE and SUBTOTAL
- The
Save,WriteandWriteTofunction now accept saving options, related issue #744 - The
AddChartfunction support specify if smooth line of the line chart, related issue #1290 - The
AddChartfunction support set custom line color in the charts, related issue #1345 - The
AddChartfunction support custom chart axis font style, related issue #320 - The
AddChartfunction support create 3D line chart - The functions
SetColWidth,GetColWidth,SetColVisible,GetColVisible,SetColStyleandGetColStylenow 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
RowOptsfor 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,ErrSheetNameLengthandErrSheetNameSingleQuotehas been added - Introduce 5 new export data types:
HeaderFooterOptions,PageLayoutMarginsOptions,PageLayoutOptions,SheetPropsOptions, andViewOptions - 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
Closefunction now support cleanup stream writer temporary files - The
AddPicturefunction 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
ORfunction - 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
SetRowfunction, 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)
- Go
Published by xuri over 3 years ago
https://github.com/qax-os/excelize - v2.6.1
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
TabColortoTabColorRGB - Rename exported constant
TotalColumnstoMaxColumns - Rename exported variable
ErrMaxFileNameLengthtoErrMaxFilePathLength - Rename exported variable
ErrWorkbookExttoErrWorkbookFileFormat - 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
DeleteCommentsupport to delete comment, related issue #849 - The
AddShapefunction 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
AddPicturefunction now allowing insert EMF, WMF, EMZ and WMZ format images, related issue #1225 - Make workbook open failed exception message clear, new exported variable
ErrWorkbookPasswordfor the error message on receiving the incorrect workbook password - New exported constants
MinFontSize,MinColumnsandMaxCellStyles - Add array formula support for the formula calculation engine
- Support for workbook encryption by password, related issue #199
RichTextRunsupport set superscript and subscript byvertAlignattribute- The
DeleteDataValidationfunction 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
MaxCalcIterationsfor specifies the maximum iterations for iterative calculation - Add export type
ColorMappingTypefor 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
GetRowOptsfor 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
AddCommentfunction, 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
- Go
Published by xuri almost 4 years ago
https://github.com/qax-os/excelize - v2.6.0
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
NameSpaceDublinCoreMetadataIntiativetoNameSpaceDublinCoreMetadataInitiativefor typo fix - Rename exported variable
ErrUnsupportEncryptMechanismtoErrUnsupportedEncryptMechanism - Rename exported variable
ErrDataValidationFormulaLenthtoErrDataValidationFormulaLength - Rename exported variable
ErrDefinedNameduplicatetoErrDefinedNameDuplicate - Remove exported variable
XMLHeaderByte - Remove second useless parameter
isCurrentSheetand error returns of the functionSetSqrefDropList - Remove
TotalRowsof row iterator
Notable Features
ProtectSheetnow support protect sheet with specify algorithm: XOR, MD4, MD5, SHA1, SHA256, SHA384, and SHA512UnprotectSheetnow 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
SetWorkbookPrOptionsandGetWorkbookPrOptionsto support setting and getting theFilterPrivacyandCodeNameproperties 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
AddChartfunction, resolve issue #1172 - Export 4 errors
ErrPasswordLengthInvalid,ErrUnsupportedHashAlgorithm,ErrUnsupportedNumberFormat,ErrWorkbookExtso 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
SetCellDefaultsupport 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
- Go
Published by xuri about 4 years ago
https://github.com/qax-os/excelize - v2.5.0
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
ReadZipReaderas an implementation of theFile, extract spreadsheet with given options, and support extract in memory or touching the filesystem - Remove unnecessary exported variable
XMLHeader, we can usingencoding/xmlpackage'sxml.Headerinstead of it - Remove unused exported error variable
ErrToExcelTime
Notable Features
- New API:
SetRowStylesupport for set style for the rows, related issue #990 - New API:
GetCellTypesupport for get the cell's data type, related issue #417 and #520 - New API:
SetAppPropsandGetAppPropssupport to set and get document application properites, related issue #1095 GetCellValue,GetRows,GetCols,RowsandColssupport 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
IFformula, 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
SetCellFormulanow support set the shared formulaUpdateLinkedValuewill skip macro sheet, related issue #1014- Fix
AddPicturecreated duplicate image in some cases, caused by incorrect internal relationships ID calculation, related issue #1017 AddShapesupport set line width of add the shape, related issue #262- New options
UnzipXMLSizeLimithave 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
LOOKUPdoesn't handle array form correctly, resolve issue #994 - Fix formula calculation engine
LOOKUPcan 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
NewStylereturned 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
- Go
Published by xuri over 4 years ago
https://github.com/qax-os/excelize - v2.4.1
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
AddPivotTablesupport reference source data range by defined name, relate issue #856 - The following function now is concurrency safety, relate issue #861
AddPictureandGetPictureconcurrency insert or get the picture from the worksheetRowsandColsconcurrency iterate rows and columnsSetSheetRowconcurrency set cells for a row in the worksheetSetCellStyleconcurrency set cell styleNewStyleconcurrency create the style
- 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.XLSXtoFile.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
GetCommentsin 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,summaryBelowandsummaryRightattributes arefalse - 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
GetRowHeightactually get the height of the next row - Fix incorrect scope when getting and delete the defined name, resolve issue #879
- Attribute
LocalSheetIDin the defined name should be equal toSheetIndexinstead ofSheetID - Fix missing set each cell's styles when set columns style, resolve issue #467
- Prevent panic when an incorrect range is provided as
PivotTableRangeon 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
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
- Go
Published by xuri almost 5 years ago
https://github.com/qax-os/excelize - v2.4.0
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
GetCellRichTextsupport 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
SetPageLayoutandGetPageLayout - Now support to change and get tab color of the worksheet by
SetSheetPrOptionsandGetSheetPrOptions SetCellHyperlinknow support to set hyperlink display & tooltips text, related issue #790- Support
ShowErroroption 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
SetCellValuewithnil, resolve issue #756 - Remove useless internal XML
omitemptytag 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
newFillsandparseToken - 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
UpdateLinkedValuewhich returns an error when has chart sheet or dialog sheet - Fix incorrect default column from
GetColWidthin some case - Fix can't add timelines and slicers for a pivot table in a generated spreadsheet, resolve issue #804
- Fix incorrect SetDefinedName's
localSheetIdattribute to usesheetIndex - 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
- Go
Published by xuri about 5 years ago
https://github.com/qax-os/excelize - v2.3.2
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
AddPivotTablenow support none-column and multi-data fields, relate issue #710 - The function
GetCellValuesupport custom date-time number format, relate issue #703 - The function
CalcCellValuenow support new formula functionAND,CLEAN,TRIM,LOWER,PROPER,UPPERandOR, relate issue #701 and #747 - The range of data validation now supports float decimal, relate issue #739
- The function
AddChartnow 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
NewSheetin 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
AddPictureautofit 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
AddPictureperformance, 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
- Go
Published by xuri over 5 years ago
https://github.com/qax-os/excelize - v2.3.1
We are pleased to announce the release of version 2.3.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:
Notable Features
- Support open spreadsheet with password protection by ECMA-376 document standard encryption, relate issue #199
- Add checking and limits for the worksheet
- Extend pivot table functionality: support set the header, style, and table options for the pivot table
- Security vulnerabilities and patches
Improve the Compatibility
- Compatible with Go 1.15, fix unit test failed on Windows and potential race condition, relate issue #689
- Default row height compatibility with Apache OpenOffice and Kingsoft WPS™
- Improve compatibility for the phonetic hint and sheet tab color
Bug Fixes
- Fix
RemoveRowslice bounds out of range cause panic in some case, resolve #686 - Fix stream writer generated corrupted files issue
- Fix the scale for add picture not work, resolve #691
Miscellaneous
- Unit tests update and typo fixed
- Documentation website with multilingual: English, French, Russian, Chinese, Japanese, and Korean, which has been updated
- Welcome join the Slack channel to meet other members of our community
- Go
Published by xuri over 5 years ago
https://github.com/qax-os/excelize - v2.3.0
We are pleased to announce the release of version 2.3.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:
Notable Features
- Support to set cell values concurrent, relate issue #670
- New API:
SetSheetFormatPrandGetSheetFormatPr, support to set and get worksheet formatting properties, relate issue #635 - New API:
GetColsandCols, support columns iterator AddChartsupport specified logarithmic scale on Y-axis, relate issue #661AddPicturesupport insert image autofit cell- Add limits for total columns, row and filename length
- Formula calculation engine support defined name, relate issue #665
- API
CalcCellValueupdate, formula calculation engine working in progress: 12 new functions has been added,COUNTA,ISBLANK,ISERR,ISERROR,ISEVEN,ISNA,ISNONTEXT,ISODD,ISNUMBER,MEDIAN,NA,SUMIF
Improve the Compatibility
- Compatible to case-sensitive doc parts path
- Storage string to SST (shared string table), relate issue #622
- Support the
rowelement withoutrattribute in the worksheet - Support XML multi namespace, make compatible with Kingsoft WPS™ Office, relate issue #651
- Improve the compatibility of the auto filter with Office 2007 - 2010, resolve #637
Bug Fixes
- Avoid duplicate filter database in workbook defined name
- Avoid creating duplicate style, resolve #643
- Escape characters for set rich-text
- Fix the issue, comment shapes are changed after reopening spreadsheet created by Excelize, resolve #672
- Fix panic when enabling compiler inline flags, resolve #677 and #679
- Fix the accuracy issue of getting cell value of percentage cell
Miscellaneous
- Improved error handling and fix crash when open invalid spreadsheet file
- Add missing checking error in unit tests
- Documentation website with multilingual: English, French, Russian, Chinese, Japanese, and Korean, which has been updated
- Go
Published by xuri almost 6 years ago
https://github.com/qax-os/excelize - v2.2.0
We are pleased to announce the release of version 2.2.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:
Notable Features
- Using the worksheet index instead of ID in the following functions:
GetSheetName,GetSheetIndex,GetActiveSheetIndexandSetActiveSheet, relate issue #485 - New function
GetSheetListto get the worksheet, chart sheet, and dialog sheet name list of the workbook - New function
AddChartSheetsupport create chart sheet, relate issue #451 - New function
UnsetConditionalFormat, support for remove conditional format, relate issue #571 - New function
DeleteDataValidation, support delete data validation, relate issue #348 - New function
SetCellRichText, support set rich text, relate issue #172 - New functions
InsertPageBreakandRemovePageBreak, support for insert and remove page break, relate issue #492 - The
AddPivotTableAPI changed, support for setting date field subtotal and names of the pivot table, relate issue #582 - The
AddPivotTablesupport to set the filter for the pivot table, relate issue #598 - The
AddPivotTableallow empty filter, data, and rows in the pivot table - Export
ExcelDateToTimefunction to convert excel date to time - Export
Stylestructs to allow create the style for cells by given JSON or structure pointer, relate issue #470
Bug Fixes
- Fix
greaterThanOrEqualandlessThanOrEqualoperators did not work when setting the conditional format for cell bySetConditionalFormat, resolve issue #608 - Fix corrupt worksheet created by
StreamWriter, resolve issue #576 - Escape character in the formula, resolve issue #578
- Fix the
DuplicateRowTofunction doesn't duplicate merged cells, resolve issue #586 - Fix conditional formatting hides the adjacent borders by ignoring empty conditional format style, resolve issue #200
- Fix missing comments by
GetComments, resolve issue #345 - Fix reading wrong string by
GetCellValuein some case, resolve issue #602 - Check and fill the cell without
rattribute in a row element, fix returned empty value whenGetCellValuein some case - Allow empty or default cell style formats, resolve #628
Performance
- Reduce redundant memory copy in
getRowHeight
Miscellaneous
- Remove calculated properties to make recalculate formulas in some spreadsheet applications, such as Kingsoft WPS™ Office
- Add missing checking error in unit tests
- Documentation website with multilingual: English, French, Russian, Chinese, Japanese, and Korean, which has been updated
- Go
Published by xuri about 6 years ago
https://github.com/qax-os/excelize - v2.1.0
We are pleased to announce the release of version 2.1.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:
Notable Features
- New function
DeleteDefinedName, support to delete the defined names of the workbook or worksheet - New functions
SetPageMarginsandGetPageMargins, support to for getting setting page margins - New functions
DeleteChartandDeletePicture, support to delete chart and images from the worksheet - Add support for Excel file that uses no UTF-8 encoding
- The function
AddChartnow support to create the pie of pie chart, the bar of pie chart and combo chart The functionAddChartnow support to set minor grid lines for the chart, relate issue #501 The functionAddChartnow support to set line width of the line chart, relate issue #505 The functionAddChartnow support to set a major unit and tick label skip for the chart, relate issue #538 - The function
SetColVisiblenow support to set column visible by column range - The function
AddPivotTableallow empty columns in the pivot table, relate issue #511
Bug Fixes
- Fix missing ending space text of the cell
- The
MergeCellfunction support overlapped merge cells, resolve issue #533 - Added handling of empty inline rich text in some case, resolve issue #529
- Added handling of empty workbook view in some case, resolve issue #426
- Added handling of escape character in the formula, resolve issue #546
Performance
- New functions
NewStreamWriterandFlushto generate the new worksheet with huge amounts of data. Compared to non-streaming writing, reduced memory usage by 90.2%, time cost by 53% - Make
GetRowsfunction read data as streaming. Reduced memory usage by 78.9%, relate issues #146 and #382 - Compatibility improvements, adding 49 internal XML namespaces support
Miscellaneous
- Added logging of possible errors when decoding XML, relate issues #539
- Improve code coverage unit tests (line Coverage: 97.04%)
- Add missing checking error in unit tests
- Documentation website with multilingual: English, French, Russian, Chinese, Japanese, and Korean, which has been updated
- Go
Published by xuri over 6 years ago
https://github.com/qax-os/excelize - v2.0.2
We are pleased to announce the release of version 2.0.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 change log.
Release Notes
The most notable changes in this release are:
Breaking Change
Upgrade requirements Go language version is 1.10 or later.
Notable Features
- Create pivot table support. New function
AddPivotTable()has been added - Create sparkline support. New function
AddSparkline()has been added - New function
GroupSheets()andUngroupSheets()support group and ungroup sheets - New function
AddVBAProject()to support add vbaProject.bin file which contains functions and/or macros - The function
SetPageLayout()now support to support to set fit to width and height, relate issue #432 - The function
SetSheetViewOptions()support to set whether to "show a zero in cells that have zero value" now - Allow access to more formula attributes in
SetCellFormula(), support set the type of the formula and the ref attribute - Font strike style support, relate issue #482
Bug Fixes
- Fix missing text of comments in some case, resolve issue #434
- Fix
RemoveRow()out of range in some case by recalculate offset for merged cells adjuster, resolve issue #437 - Fix invalid formula in data validation drop list
- Fix file corrupted when calling the
Save()method in the iteration, resolve issue #443 - Compatible with different types of relative paths in
workbook.xml.relsto fix read file failed in some case, resolve issue #442 - Fixed file corruption when deleting all merged cells in some case
- Fix issue where the protection worksheet settings are invalid in some case, resolve issue #454
- Fix
GetSheetNamedoesn't work in some case by check the sheets list based on index instead, resolve issue #457 - Add multi-row inline strings support, relate issue #464
- Fix overflow numeric cell value on the 32-bit operating system, relate issue #386
- Fix go module dependency errors, relate issue #466 and #480
- Fix file corrupted when calling
SetSheetPrOptions()in some case, resolve issue #483
Performance
- Performance optimization, faster for reading the file, relate issue #439
Miscellaneous
- Add missing error check in
SetSheetRow() - Optimize code, combine internal functions:
workBookRelsWriter,drawingRelsWriterintorelsWriter;drawingRelsReader,workbookRelsReader,workSheetRelsReaderintorelsReaderaddDrawingRelationships,addSheetRelationshipsintoaddRels
- Go
Published by xuri over 6 years ago
https://github.com/qax-os/excelize - v2.0.1
We are pleased to announce the release of version 2.0.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 change log.
Release Notes
The most notable changes in this release are:
Notable Features
- New function
SetHeaderFooter()init set header and footer support, relate issue #394 - New function
SetColStyle()support to set style by columns, relate issue #397 - New functions
SetDefaultFont()andGetDefaultFont()support to change the default font, relate issue #390 - New functions
SetDocProps()andGetDocProps(), support to set and get doc properties, relate issue #415 - The function
AddChart()now support to create new 26 types of chart: cone, pyramid and cylinder series chart for column and bar, surface 3D, wireframe Surface 3D, contour and wireframe contour,bubble and a 3D bubble chart, unsupported chart type add error prompt - New functions
SetDefinedName()andGetDefinedName()support to set and get defined names - More detailed error information when open the encrypted file
- The function
AddPicture()now support to add TIF and TIFF format images
Bug Fixes
- Fix structs fields definition errors and keep double quotes in data validation formula
- Fix comments duplicate caused by inner counting errors, resolve issue #373
- Fix read file error caused by getting sheet map errors, resolve issue #404
- Enhance compatibility with PivotTable, resolve issue #413
- Enhance compatibility with font size and a bold style, resolve issue #411, #420, and #425
- Enhance recalculation adjuster to resolve file broken issue, after insert or remove rows in some case, relate issue #421 and #424
- Fix hide sheet does not work in some case, relate issue #418
- Fix multi-chart series caused file corrupted by avoid accent theme color index overflow, relate issue #422
Miscellaneous
- Improve unit testing coverage (Line Coverage: 96.05%)
- Optimize code, fix golint issues
- Go
Published by xuri almost 7 years ago
https://github.com/qax-os/excelize - v2.0.0
We are pleased to announce the release of version 2.0.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 change log.
Release Notes
The most notable changes in this release are:
Breaking Change
The following table lists the changes to the functions for v2.0.0 compared to the v1.4.1:
|Function|Add error return|Row Number Change*|Delete|New Addition|
|---|---|---|---|---|
|ToALphaString|×|×|√|×|
|TitleToNumber|×|×|√|×|
|SplitCellName|×|×|×|√|
|JoinCellName|×|×|×|√|
|ColumnNameToNumber|×|×|×|√|
|ColumnNumberToName|×|×|×|√|
|CellNameToCoordinates|×|×|×|√|
|CoordinatesToCellName|×|×|×|√|
|SetCellFloat|×|×|×|√|
|SetCellStyle|√|×|×|×|
|InsertCol|√|×|×|×|
|RemoveCol|√|×|×|×|
|RemoveRow|√|√|×|×|
|InsertRow|√|√|×|×|
|DuplicateRow|√|×|×|×|
|DuplicateRowTo|√|×|×|×|
|SetRowHeight|√|×|×|×|
|GetRowHeight|√|×|×|×|
|GetCellValue|√|×|×|×|
|GetCellFormula|√|×|×|×|
|GetCellHyperLink|√|×|×|×|
|SetCellHyperLink|√|×|×|×|
|SetCellInt|√|×|×|×|
|SetCellBool|√|×|×|×|
|SetCellStr|√|×|×|×|
|SetCellDefault|√|×|×|×|
|GetCellStyle|√|×|×|×|
|SetCellValue|√|×|×|×|
|MergeCell|√|×|×|×|
|SetSheetRow|√|×|×|×|
|SetRowVisible|√|√|×|×|
|GetRowVisible|√|√|×|×|
|SetRowOutlineLevel|√|√|×|×|
|GetRowOutlineLevel|√|√|×|×|
|GetRows|√|×|×|×|
|Columns|√|×|×|×|
|SearchSheet|√|×|×|×|
|GetPicture|√|×|×|×|
|GetColVisible|√|×|×|×|
|SetColVisible|√|×|×|×|
|GetColOutlineLevel|√|×|×|×|
|SetColOutlineLevel|√|×|×|×|
|SetColWidth|√|×|×|×|
|GetColWidth|√|×|×|×|
|GetMergeCells|√|×|×|×|
|ProtectSheet|√|×|×|×|
|UnprotectSheet|√|×|×|×|
|UpdateLinkedValue|√|×|×|×|
|SetSheetVisible|√|×|×|×|
|adjustHelper|√|×|×|×|
|adjustMergeCells|√|×|×|×|
|adjustAutoFilter|√|×|×|×|
|prepareCell|√|×|×|×|
|setDefaultTimeStyle|√|×|×|×|
|timeToExcelTime|√|×|×|×|
|addDrawingChart|√|×|×|×|
|addDrawingVML|√|×|×|×|
|addDrawingPicture|√|×|×|×|
|getTotalRowsCols|√|×|×|×|
|checkRow|√|×|×|×|
|addDrawingShape|√|×|×|×|
|addTable|√|×|×|×|
|workSheetReader|√|×|×|×|
|copySheet|√|×|×|×|
* From version 2.0.0 all row manipulation methods use Excel row numbering starting with 1 instead of zero-based numbering which takes place in some methods in earlier versions, related issue #349.
Notable Features
- New function
DuplicateRowTo()has been added for duplicate row to specified row position - The function
SetPageLayout()now support to set page orientation, related issue #318 - The function
SetPageLayout()now support to set page size
Bug Fixes
- Fix the issue that creates a blank fill if no fill is specified in the style format
- Fix the issue that data validation list in the excel sheet disappears formula characters greater than
255, related issue #339 - Fix the issue corrupted spreadsheet file after deleting formula of the cell, related issue #346
- Fix the issue that
GetComment()returns incorrect mapping between worksheets and comments in some case, related issue #345 - Fix the issue #346, resolve the issue corrupted spreadsheet file after deleting formula of cell
- Fix the issue #377, avoid empty column in GetRows result
Performance
- Performance optimization, faster for adding comments, related issue #347, faster add images, charts, and shapes, related issue #274
- Adding the same image should create a drawing referencing the already stored copy of the image, related issue #359

Miscellaneous
- Typo fixed and godoc updated
- Tests made stronger again, go1.12 added to tests matrix
- Go
Published by xuri about 7 years ago
https://github.com/qax-os/excelize - v1.4.1
We are pleased to announce the release of version 1.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 change log.
Release Notes
The most notable changes in this release are:
Notable Features
- New function
WriteTo()has been added, it implements io.WriterTo to write the file - New function
SearchSheet()has been added to get coordinates by given worksheet name, cell value, and regular expression. Relate issue #277 - New functions
ProtectSheet()andUnprotectSheet()has been added to prevent other users from accidentally or deliberately changing, moving, or deleting data in a worksheet, relate issue #273 - New functions
GetMergeCells()has been added, support to get all merged cells from a worksheet currently - Add support to flip outline summaries, relate issue #304
- Support
go module - Support set and get TopLeftCell properties of sheet view options, relate issue #310
- The function
AddChart()now support to create 2D / 3D area, stacked area, 100% stacked area charts, relate issue #311
Bug Fixes
- Fix the issue caused by missing tradition to strict conversion for
sharedStringsReader(), resolve issue #276 - Fix unknown option in chart format JSON struct tag
- Fix nil pointer dereference when getting cell formula in some case, resolve issue #290
- Make the function
GetRows()return value avoid empty rows in the tail of the worksheet, resolve issue #195 - Fix
GetSheetMap()failed in some case, resolve issue #297 - Fix delete worksheet index error in some case, resolve issue #308
Miscellaneous
- Tests refactoring, resolve issue #322
- Add a new logo for excelize, numerous documentation updates
- Go
Published by xuri over 7 years ago
https://github.com/qax-os/excelize - v1.4.0
We are pleased to announce the release of 1.4.0.
Release Notes
The most notable changes in this release are:
Breaking Change
- Add error return value for functions:
AddChart(),AddComment(),AddPicture(),AddShape(),AddTable()andSetConditionalFormat()
Notable Features
- New function
GetComments()has been added for support retrieves all comments and returns a map of worksheet name to the worksheet comments - New functions
RGBToHSL()andHSLToRGB()has been added for support convert RGBA, HSL color - New function
NewDataValidation()and series functionsDataValidation.SetDropList(),DataValidation.SetError(),DataValidation.SetInput(),DataValidation.SetRange(),DataValidation.SetSqref()andDataValidation.SetSqrefDropList()has been added for suppport data validation - New function
AddPictureFromBytes()has been added, relate issue #259 - Function
GetCellFormula()now supports shared formula types, relate issue #227 - Support to parse dates further in future
- Use min/mid/max value for 2 and 3 color scale conditional formatting
Bug Fixes
- Improved commenting formatting, fix expands all comment boxes stacked all in one place
- Fix create worksheet by
NewSheet()cause file issue, related issue #249
Performance
- Performance optimization 20% faster, 14% memory savings on set cell values. See Performance Figures
- Use github.com/mohae/deepcopy to deep copy worksheets instead of the internal
deepcopyfunction that was using encoding/gob serialization and deserialization
- Go
Published by xuri over 7 years ago
https://github.com/qax-os/excelize - v1.1.0
We are pleased to announce the release of v1.1.0.
Release Notes
The most notable changes in this release are:
- Feature: Conditional format support
- Count and trim sheet name in UTF-8
- Bugfix: deep copy issue with function
CopySheet()
- Go
Published by xuri about 8 years ago
https://github.com/qax-os/excelize - v1.2.0
We are pleased to announce the release of 1.2.0.
Release Notes
The most notable changes in this release are:
- Performance optimization
- Improvement Golang 1.9 compatibility
- Stacked bar chart supported
- 24-hour time format supported
- API changed, use worksheet name instead of "sheet" + index
- Rename import path to
github.com/360EntSecGroup-Skylar/excelize - Add new functions
SetSheetViewOptionsandGetSheetViewOptions
- Go
Published by xuri about 8 years ago
https://github.com/qax-os/excelize - v1.3.0
We are pleased to announce the release of 1.3.0.
Release Notes
The most notable changes in this release are:
Breaking Change
- Make row index consistent in function
SetRowHeight()andGetRowHeight(), fix issue #205
Notable Features
- New function
SetSheetRow()has been added for support write the whole line at once, relate issue #96 and #194 - New functions
GetColOutlineLevel(),GetRowOutlineLevel(),SetColOutlineLevel()andSetRowOutlineLevel()has been added for suppport creat group - Add iterator method for
Rows, new functionsColumns(),Next()andError()has been added - Function
SetCellValue()now supportsboolandtime.Durationtype value - Function
AddTable()now supports set name of table, relate issue #216 - Function
AddPicture()now supports set the positioning of a picture, relate issue #214 - Function
GetCellValue()now supports readinlineStrtype cell value, relate issue #208 and pull request #209 - Function
AddChart()now supports set custom chart size - Add 3D, 3D 100%, clustered, stacked and 100% stacked bar and column series charts supported, relate issue #160 and #190
- Add a hyperlink to image support for the function
AddPicture(), relate issue #185 - Add protection properties associated with the cell support, relate issue #191
- Add categories or values on reverse order (orientation of the chart) support, and set auto or fixed maximum, minimum of the axis, relate issue #202
Bug Fixes
- Fix
DeleteSheet()make broken file caused byactiveTabtag calculation wrong, relate issue #165 - Fix read columns count wrong in specific worksheet data, relate issue #175
- Handle special shared string table file name
xl/SharedStrings.xmlto make library compatibility with 1C software, relate issue #188 - Fix
checkCellInArea()index out of range when the merged cell reference is single coordinate, relate issue #206 - Fix set font-family doesn't work, relate issue #222
Performance
- Make
SetCellStyle()quicker by skipping conversions incheckCellInArea(), and skipping area checks when we are sure the cell can't be before or past the current row/col - Save bytes on memory instead of string, 11% memory savings, see Performance Figures
- Go
Published by xuri about 8 years ago