Closed Jan-E closed 3 years ago
Release notes for LibXL 3.8:
- added Book::calcMode() and Book::setCalcMode() methods
- fixed a bug with losing formats in empty cells when loading/writing xls files from the version 3.8.8
- restored the Book::loadWithoutEmptyCells() method
- improved performance and reduced memory consumption for files with a lot of strings
- fixed GDI handle leaks on Windows
- fixed a bug in Sheet::getNamedRange() and Sheet::namedRangeSize() when used immediately after Sheet::setNamedRange() (xls)
- restored the updateNamedRanges parameter for Sheet::insertCol/insertRow/removeCol/removeRow C++ methods and added
xlSheetInsertColAndKeepRanges/xlSheetInsertRowAndKeepRanges/xlSheetRemoveColAndKeepRanges/xlSheetRemoveRowAndKeepRanges
C functions
- fixed a critical bug from the version 3.8.6 with loading some xlsx files (please do not use the version 3.8.6)
- added support of new formula functions in Excel for Office 365 / Excel 2019 (xlsx)
- added new properties for the Sheet::setPicture() method:
scale > 0 - the picture is aligned to the left top corner of the cell or merged area with the specified scale factor
scale = 0 - the picture is stretched inside the specified cell or merged area
scale < 0 - the picture is aligned to the center of the cell or merged area with the specified scale factor
- added Sheet::rowHeightPx() and Sheet::colWidthPx() methods
- Sheet::firstRow(), Sheet::lastRow(), Sheet::firstCol() and Sheet::lastCol() methods ignore blank cells now
- added parial support of formula arrays for xlsx files,
for example now the Sheet::writeFormula() can accept {=SUM(A2:F2)} value
- added a change of AutoFilter position together with Sheet::insertRow(), Sheet::removeRow(),
Sheet::insertCol(), Sheet::removeCol() methods (xlsx)
- fixed autofit feature for non-standard Windows scaling (High DPI)
- fixed a bug in the Book::load() method for using a path with drive part for temporary file (xlsx)
- fixed some bugs with loading some xls and xlsx files
- fixed a bug in the Sheet::getNamedRange() when a xls file is parially loaded by the Book::loadSheet() method (xls)
- fixed bugs in Sheet::removeRow() and Sheet::removeCol() methods when row or column contains merged cells
- fixed a bug with crash in the Book::addFormat() when workbook is xlsx and initFormat is from xls file
- fixed a bug with saving workbook with complicated OfficeArt objects (xls)
- fixed a bug in Sheet::setPicture2() with default width/height (-1,-1) for some Excel versions and LibreOffice
- fixed a bug in Sheet::setAutoFitArea() with default parameters for xls files
New methods:
- Sheet::colWidthPx()
- Sheet::rowHeightPx()
- now Sheet::setPicture() and Sheet::setPicture2() methods ignore the current Windows scaling and
interprets width and height as pixels for 100% scale factor (96 DPI)
- now autofit feature ignores merged cells
- added string length checking in Sheet::writeStr() (xlsx)
- fixed a bug in the Book::dateUnpack() method
- fixed a bug with loading some xls files
- fixed a bug in the Sheet::readFormula() method (xls)
- changed the open mode to "shared" for xlsx files
- added updateNamedRanges parameter to Sheet::insertCol(), Sheet::insertRow(), Sheet::removeCol() and Sheet::removeRow() methods
- added bitcode support for iOS package
- fixed a bug with character encoding in ANSI mode for xlsx files
- fixed a bug in formula processing (xls)
- improved a copying colors from source format (initFormat parameter) in Book::addFormat() (xlsx)
- added reading comments for xlsx files
- added Book::loadInfo() and Book::getSheetName() methods
- improved reading some strings from inlined rich text (xlsx)
- improved reading performance for xlsx files without "r" attribute in rows (xlsx)
- added escaping "_x" character sequence (xlsx)
- added sheet name checking in Book::addSheet() and Sheet::setName() methods
(using some special characters leads to unreadable files)
- removed i386 binary from the framework for Mac
(AppStore doesn't accept i386 architecture now)
- changed mbstowcs() to MultiByteToWideChar() in Windows version
- fixed a bug with using a sheet name with space characters in the Book::insertSheet() method
in case of using initSheet with defined names (xlsx)
- fixed a bug with mistaken convering semicolon to comma inside arrays and braces {} (xlsx)
- fixed an issue with loading UTF-8 file names in Windows (xls)
- fixed some security issues
New methods:
- Book::loadInfo()
- Book::getSheetName()
- added the Book::loadWithoutEmptyCells() method (xls)
- added support RGB values without alpha channel
- fixed a bug with copying an existing sheet in the Book::addSheet() method for Excel 2016 files (xlsx)
- fixed a bug with loading some xlsx files with pictures with incorrect extensions
- fixed a bug with saving some sheets with extensions (xlsx)
- fixed a bug with saving cells without "r" attribute (xlsx)
- fixed a bug with saving some Strict Open XML Spreadsheets (xlsx)
- fixed issue with unnecessary escaping some Unicode characters inside XML files (xlsx)
- fixed some security issues
- improved compatibility with Excel 2016 (xlsx)
- added support of OOXML format extensions (saved untouched, xlsx)
- fixed error "XML character encoding not supported" with loading files
with specifying a temporary file in Linux/Mac platforms
- added an update of all existing named ranges after using Sheet::insertRow(), Sheet::removeRow(),
Sheet::insertCol(), Sheet::removeCol() methods (xlsx)
- removed some memory leaks for xlsx format
- fixed issue with autofit for cells with text rotation (only windows)
- added linkPath parameter to Sheet::getPicture() method (xlsx)
- added data validation feature for xlsx files
- added Book::addPictureAsLink() method (xlsx)
- added Book::moveSheet() method
- improved speed of Sheet::setMerge() method (removed overlap checking)
- improved compatibility with Apple Preview (xls)
- fixed a bug in autofit feature for a custom format with % character
- fixed issue with access to some worksheets for exported xlsx files
from the SAS statistical package
- fixed issue with 1900/2/1 date
- fixed a bug with loading some xls files
- fixed a bug in Book::load() and xlBookLoadUsingTempFile() with passing a full path
with directories for temporary files (xlsx)
- fixed a bug in Sheet::setCol() (xls)
- fixed Sheet::getNamedRange() and Sheet::namedRange() methods for correct extracting
the whole column or row as a range (xlsx)
New methods:
- Book::moveSheet()
New methods only for xlsx format:
- Sheet::addDataValidation()
- Sheet::addDataValidationDouble()
- Sheet::removeDataValidations()
- Book::addPictureAsLink()
@Jan-E Thanks for the info.
Quote from the LibXL release notes, found in libxl-win-3.8.8.3.zip on ftp://xlware.com/build:
I will be gradually recompiling all my Windows builds on https://www.apachelounge.com/viewtopic.php?t=6359 with LibXL 3.8.8.3. That was 3.8.6.1 in the latest builds.
Looking at the release notes it seems no problem just to replace an 3.8.6 libxl.dll with a 3.8.8 version.