Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from XLAM / XLSM / XLSX / XLTM / XLTX files. Supports reading and writing spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports complex components by high compatibility, and provided streaming API for generating or reading data from a worksheet with huge amounts of data.
GitHub: github.com/xuri/excelize
We are pleased to announce the release of version 2.8.0. Featured are a handful of new areas of functionality and numerous bug fixes.
A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.
Release Notes
The most notable changes in this release are:
Breaking Change
- Rename exported variable
ErrTableNameLength
toErrNameLength
- Rename exported type
PaneOptions
toSelection
- Rename the
Runs
field toParagraph
in the exportedComment
data type - Remove the
Lang
field in theStyle
data type - Removed exported
ChartTitle
data type, and using theRichTextRun
data type instead of it - Changed the data type for the
DecimalPlaces
to pointer of integer - Change the default point to pixels conversion factor, resolve issues #279 and #1536
- Change the
AddShape
function signature:func (f *File) AddShape(sheet, cell string, opts *Shape) error
tofunc (f *File) AddShape(sheet string, opts *Shape) error
Notable Features
- Add new exported error variables
ErrExistsTableName
andErrorFormControlValue
- Add new options
ShortDatePattern
,LongDatePattern
,LongTimePattern
andCultureInfo
in theOptions
data type, related issue #1199 - Add new exported data type
CultureName
enumeration for country code - New functions
GetTables
andDeleteTable
support to get and remove tables, related issues #674 and #1454 - New function
GetStyle
support to get style definitions, related issues #314, #1520 and #1521 - Support applying cell value with placeholder, padding, rounds numbers, currency, accounting and switches argument number format, and support applying date and time number format for 812 language tags, related issue #660
- New support 10 formula functions: ARRAYTOTEXT, FORECAST, FORECAST.LINEAR, FREQUENCY, INTERCEPT, ODDFYIELD, ODDLPRICE, ODDLYIELD, PROB, VALUETOTEXT
- Add file path length limitation details in the error message
- New function
GetPanes
support to get sheet panes and view selection - New functions
AddFormControl
,GetFormControls
andDeleteFormControl
support to form controls, related issues #301 and #1169 - The
AddChart
function support set primary titles, related issue #1553 - The
AddChart
function support creating chart with a secondary series axis, related issue #518 - The
AddChart
function support formatting and setting rich text titles for the chart, related issue #1588 - Add check for shape type for the
AddShape
function, an error will be returned if no shape type is specified - Support read cell values formatted by the Japanese calendar number format, related issue #1590
- The
GetPictures
function support read one cell anchor pictures, related issue #1585 - The
NewConditionalStyle
function support to create a conditional format with number format and protection, related issue #1610
Improve the Compatibility
- Support checking cell value length with multi-bytes characters, related issue #1517
- Prevent create duplicate tables and defined name with the same name
- Improve the cell comment box shape size compatibility with KingSoft WPS
- Support fallback to default column width in sheet format property, related issue #1536
- Made case in-sensitive for internal worksheet XML path to improve compatibility, related issue #1591
Bug Fixes
- Escape XML characters after checking cell value length, fix stream writer generated file corrupted, resolve issues #1518, #1519 and #1530
- Fix incorrect comment box size for multi-line plain text comments
- Preventing format text cell value as a numeric, resolve issues #1523, #1528 and #1533
- Fix race conditions for concurrency safety functions
- Fix incorrect round millisecond for the date time
- Fix incorrect number formatted result for date and time with 12 hours at AM
- Fix incorrect formula functions SUMIFS and AVERAGEIFS result, resolve issue #1564
- Fix basic arithmetic operator priority issues in the calculating engine, resolve issue #1599
- Fix across worksheet reference issue for the formula calculation engine
- Fix adjust table issue when after removing rows, resolve issue #1539
- Support to get multiple images in one cell, resolve issue #1548
- Fix the added picture position was incorrect in some cases, resolve issue #1560
- Support adjusting the formula when inserting columns and rows, fix the workbook corruption caused by inserting columns or rows caused, resolve issue #1565
- Formula function CONCAT, CONCATENATE support concatenation of multiple cell values, resolve issue #1569
- Fix incorrect formula calculate results on a nested argument function which returns a numeric result, resolve issue #1582
- Fix internal graphic object counter issues caused added picture was duplicated, resolve issue #1584
- Fix read date time cell result was incorrectly caused by hours rounding issue, resolve issue #1587
- Fix panic on getting merged cells with the same start and end axis
Performance
- Optimizing regexp calls to improve performance, related issue #1532
- This avoid unnecessary byte/string conversion, related issue #1541
Miscellaneous
- The dependencies module has been updated
- Simplify variable declaration and error return statements
- Remove the built-in language number format code mapping with Unicode values
- Remove the internal
xlsxTabColor
data type, using thexlsxColor
data 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
Top comments (1)
Thanks