Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from spreadsheet documents, the community just announce the release of version 2.
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
The community just announce the release of version 2.8.0 on August 28, 2023. Featured are a handful of new areas of functionality and numerous bug fixes.
The most notable changes in this release are:
Breaking Change
- Rename exported variable
ErrTableNameLength
to ErrNameLength
- Rename exported type
PaneOptions
to Selection
- Rename the
Runs
field to Paragraph
in the exported Comment
data type
- Remove the
Lang
field in the Style
data type
- Removed exported
ChartTitle
data type, and using the RichTextRun
data type instead of it
- Changed the data type for the
DecimalPlaces
to pointer of integer
- Change the default point to pixels conversion factor, resolve issues #279 and #1536
- Change the
AddShape
function signature: func (f *File) AddShape(sheet, cell string, opts *Shape) error
to func (f *File) AddShape(sheet string, opts *Shape) error
Notable Features
- Add new exported error variables
ErrExistsTableName
and ErrorFormControlValue
- Add new options
ShortDatePattern
, LongDatePattern
, LongTimePattern
and CultureInfo
in the Options
data type, related issue #1199
- Add new exported data type
CultureName
enumeration for country code
- New functions
GetTables
and DeleteTable
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
and DeleteFormControl
support to form controls, related issues #301 and #1169
- The
AddChart
function support set primary titles, related issue #1553
- The
AddChart
function support creating chart with a secondary series axis, related issue #518
- The
AddChart
function support formatting and setting rich text titles for the chart, related issue #1588
- Add check for shape type for the
AddShape
function, an error will be returned if no shape type is specified
- Support read cell values formatted by the Japanese calendar number format, related issue #1590
- The
GetPictures
function support read one cell anchor pictures, related issue #1585
- The
NewConditionalStyle
function support to create a conditional format with number format and protection, related issue #1610
Improve the Compatibility
- Support checking cell value length with multi-bytes characters, related issue #1517
- Prevent create duplicate tables and defined name with the same name
- Improve the cell comment box shape size compatibility with KingSoft WPS
- Support fallback to default column width in sheet format property, related issue #1536
- Made case in-sensitive for internal worksheet XML path to improve compatibility, related issue #1591
Bug Fixes
- Escape XML characters after checking cell value length, fix stream writer generated file corrupted, resolve issues #1518, #1519 and #1530
- Fix incorrect comment box size for multi-line plain text comments
- Preventing format text cell value as a numeric, resolve issues #1523, #1528 and #1533
- Fix race conditions for concurrency safety functions
- Fix incorrect round millisecond for the date time
- Fix incorrect number formatted result for date and time with 12 hours at AM
- Fix incorrect formula functions SUMIFS and AVERAGEIFS result, resolve issue #1564
- Fix basic arithmetic operator priority issues in the calculating engine, resolve issue #1599
- Fix across worksheet reference issue for the formula calculation engine
- Fix adjust table issue when after removing rows, resolve issue #1539
- Support to get multiple images in one cell, resolve issue #1548
- Fix the added picture position was incorrect in some cases, resolve issue #1560
- Support adjusting the formula when inserting columns and rows, fix the workbook corruption caused by inserting columns or rows caused, resolve issue #1565
- Formula function CONCAT, CONCATENATE support concatenation of multiple cell values, resolve issue #1569
- Fix incorrect formula calculate results on a nested argument function which returns a numeric result, resolve issue #1582
- Fix internal graphic object counter issues caused added picture was duplicated, resolve issue #1584
- Fix read date time cell result was incorrectly caused by hours rounding issue, resolve issue #1587
- Fix panic on getting merged cells with the same start and end axis
Performance
- Optimizing regexp calls to improve performance, related issue #1532
- This avoid unnecessary byte/string conversion, related issue #1541
Miscellaneous
- The dependencies module has been updated
- Simplify variable declaration and error return statements
- Remove the built-in language number format code mapping with Unicode values
- Remove the internal
xlsxTabColor
data type, using the xlsxColor
data type instead of xlsxTabColor
- Unit tests and godoc updated
- Documentation website with multilingual: Arabic, German, Spanish, English, French, Russian, Chinese, Japanese, and Korean, which has been updated