-
Notifications
You must be signed in to change notification settings - Fork 61
Description
(EDIT1 18-Sep - to reflect comments from @nhz2, below)
(EDIT2 19-Sep - to reflect #321 from @nhz2)
(EDIT3 09-Oct - to reflect #326 (proposed setFormula function) and add list of fixed issues)
(EDIT4 20-Oct - update list of fixed issues)
(EDIT5 10-Nov - update list of fixed issues (again))
(EDIT6 01-Dec - Change rename! to renamesheet! for consistency)
(EDIT7 07-Dec - to reflect #332 supporting transposed tables)
(EDIT8 16-Jan - to reflect #341 reducing the memory footprint)
(EDIT9 21-Feb - To reflect #343 including support for AnnotatedStrings to create rich text formats)
(EDIT10 03-Mar - To reflect comments left in #335)
Hi Felipe,
You may not want these, but I drafted some release notes for v0.11.0. Discard if inappropriate.
v0.11.0 Release Notes
There are almost no changes in functional APIs in v0.11.0 compared with v0.10.4. Those changes that have been made are described briefly here.
Documentation
The documentation for this package has been extended substantially to cover the new functionality and all changes are (should be) reflected therein. In particular, a detailed guide to using the new formatting functions has been added.
New Functions
A number of new functions have been added compared with v0.10.4.
These include 18 new functions to support formatting of cells and cell values together with functions to copy or delete a sheet, to merge cells and to add new defined names for cells or cell ranges. In addition, it is now also possible to assign AnnotatedStrings (from StyledStrings.jl) to cells to create content using Excel's rich text formatting.
A new function, XLSXFile, is provided that takes a Tables.jl compatible table and creates a new XLSXFile object for writing and which can act as a sink for functions such as CSV.read.
A new function, renamesheet! is created to replace rename! for consistency in naming with addsheet!, copysheet! and deletesheet! and to avoid potential name conflicts when exported (e.g. with DataFrames.rename!). However, the existing function XLSX.rename! is retained (but not exported) to avoid a breaking change.
Two new functions, gettransposedtable and readtransposedtable, mirror gettable and readtable for worksheet tables that have data organised in rows rather than columns.
Some additional convenience functions have also been added to streamline functions that were already available (such as newxlsx, savexlsx).
A wide range of additional indexing options is now widely supported by most functions. Most functions now support indexing rows and columns using vectors, ranges and step ranges and will accept a colon.
Exported Functions
Most useful functions are now public, and can be used without the XLSX. prefix. The following function names are now exported:
-
Files and worksheets
XLSXFile,readxlsx,openxlsx,opentemplate,newxlsx,writexlsx,savexlsx,
Worksheet,sheetnames,sheetcount,hassheet,
addsheet!,renamesheet!,copysheet!,deletesheet! -
Cells & data
CellRef,row_number,column_number,eachtablerow,
readdata,getdata,gettable,readtable,readto,
gettransposedtable,readtransposedtable,
writetable,writetable!,
setFormula,
addDefinedName -
Formats
setFormat,setFont,setBorder,setFill,setAlignment,
setUniformFormat,setUniformFont,setUniformBorder,setUniformFill,setUniformAlignment,setUniformStyle,
setConditionalFormat,
getRichTextFormat
setColumnWidth,setRowHeight,
getMergedCells,isMergedCell,getMergedBaseCell,mergeCells
The iterator XLSX.eachrow has retained the XLSX prefix to avoid making a breaking change. However, Base.eachrow now refers to XLSX.eachrow for XLSX.Worksheet data types, meaning that eachrow can be used without qualification, too.
Fixed issues
This release addresses the following issues:
#52, #61, #63, #80, #88, #120, #147, #148, #150, #155, #156, #159, #165, #172, #179, #184, #189, #190, #198, #222, #224, #232, #234, #235, #238, #239, #241, #243, #251, #252, #253, #258, #259, #260, #275, #276, #277, #278, #281, #284, #299, #301, #305, #308, #311, #314, #316, #324, #331, #335, #338, #342.
Breaking changes
There is only one breaking change in this version:
infer_eltypesnow defaults to true (e.g. ingettableandreadtable).
I don't think there are any other breaking changes.
Internal changes
A number of changes to package internals have been made. Specifically, changes have been made to the following data structs:
SheetRowStreamIteratorStateWorksheetCacheIteratorStateWorksheetCacheXLSXFileWorkbookWorksheetSheetRowCell
In particular, the internal memory configuration of an XLSXFile object and its components have been changed significantly, nearly halving the package's memory footprint.
Changed dependencies
v0.11.0 has now fully migrated to ZipArchives.jl whereas v0.10.4 relied upon both this and ZipFiles.jl. In addition, xml support is now from XML.jl rather than EzXML.jl.
The use of AnnotatedStrings is supported through a package extension. This requires StyledStrings.jl to be in the active environment.
New functionality that has been added has brought the following additional dependencies compared with v0.10.4:
Colors.jlUUIDs.jlRandom.jl
In addition, the test suite now has dependencies on CSV.jl, Distributions.jl and StyledStrings.jl.
Precompilation
v0.11.0 now makes use of PrecompileTools.jl (initially only in a small way).