What's new in LibXL 3.8.0
Apr 28, 2017
- 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()
New in LibXL 3.7.1 (Nov 10, 2016)
- added possibility to load workbook partially with specified sheet index and row range
- added possibility to use temporary files to decrease memory consumption
- added Swift 3.0 interface to Mac and iOS packages
- fixed a bug with unlocked pictures in protected sheets (xls)
New in LibXL 3.6.4 (Sep 27, 2015)
- Fixed a bug with dependency on current locale for decimal symbol in Sheet::readNum() and Sheet::writeNum() methods (xlsx)
- Added a detecting overlaps to Sheet::setMerge() method
New in LibXL 3.6.3 (Sep 18, 2015)
- now all writing methods (writeStr, writeNum, writeBool) take into account an existing column format if format parameter equals 0
- added a position parameter to Sheet::setPicture() method:
- POSITION_MOVE_AND_SIZE - move and size with cells POSITION_ONLY_MOVE - move but don't size with cells POSITION_ABSOLUTE - don't move or size with cells
- added support of GIF pictures (xlsx)
- improved Book::addPicture() method: now type of picture is detected by signature instead of extension (xls) improved Sheet::lastRow() and Sheet::lastCol() methods: taken into account rows without row index and columns without reference (xlsx)
- improved Sheet::readFormula() method: now parameter separators (';' or ',') depends on locale
- improved precision of autofit feature for multiple lines in a cell
- added a bool return value to Sheet::getMerge() in C# interface
- fixed bug with using named ranges in formula expressions (xls)
- fixed bug with % symbol in formula expressions (xls)
- fixed bugs with UTF-8 encoding in Book::load() and Book::save() methods
- fixed bugs with UTF-8 encoding in Sheet::setName()
- fixed a bug in Sheet::setColHidden() method (xls)
- fixed a bug with crash on loading some corrupted xlsx files
- fixed bug with saving some graphics elements (xls)
- fixed bug in Sheet::setAutoFitArea() method (the last column didn't automatically fit)
- fixed bug with loading some xlsx files with zero sized internal files
New in LibXL 3.6.2 (May 4, 2015)
- added applyFont, applyFill, applyAlignment, applyBorder, applyNumberFormat attributes to styles for better compatibility with Apple Preview (xlsx)
- added default Row records to a sheet, it should improve compatibility with some third-party Excel tools/applications (xls)
- improved precision of autofit feature (sections)
- added calcId attribute to calcPr element (xlsx)
- fixed bug in Sheet::writeFormula() with some R1C1 formulas
- fixed bug in Book::addPicture2(): it didn't recognize some JPG files (xls)
- fixed bug in Sheet::readStr() method with empty strings in some xlsx files
- fixed loading of some ExtSST records (xls)
- fixed bug with long custom format string
- fixed bug with reading formula expressions with user defined functions (xls)
- fixed bug with false loading some xls file with xlCreateXMLBook() function
- fixed bugs with copying a sheet with pictures, charts or diagrams in Book::addSheet() (xlsx)
- New methods:
- Sheet::setAutoFitArea()
- Sheet::printRepeatRows()
- Sheet::printRepeatCols()
- Sheet::printArea()
New in LibXL 3.6.1 (Nov 12, 2014)
- added more precision to autofit column width feature (number formats are taken into consideration)
- optimized autofit column width feature: removed memory leak and increased performance
- (Sheet::setCol() with -1 width parameter)
- added sheet dimensions to output files (xlsx)
- added anyAttribute to CT_Sst type for reading some irregular xlsx files
- standardized LibXL.framework in "LibXL for Mac" package, now it can be signed
- fixed bug in Book::setActiveSheet() method when book contains a chart (xlsx)
- fixed bug in Book::delSheet() (xls)
- fixed errors with autofit in trial mode
- fixed bug in Sheet::isDate(): added checking of quotes in custom format
- fixed the memory bug when loading some xls files
- fixed Sheet::firstRow() and Sheet::lastRow() methods (xlsx)
- fixed bug with writing references in formula expressions in lower case in Sheet::writeFormula() (xls)
- fixed bug with precision of real numbers in formula expressions in Sheet::readFormula() (xls)
- fixed bugs with some formula expressions with SUM, AVERAGE, MIN, MAX functions (xls)
- fixed bug with corrupted output files with macros on Solaris/AIX
New in LibXL 3.6.0 (Nov 12, 2014)
- added autofit column width support
- (use -1 for width parameter in Sheet::setCol() method)
- added hyperlink support
- added direct access to merged cells
- added a possibility to create xltx and xlsm files
- added a possibility to read errors "#NULL!", "#DIV/0!", "#VALUE!", "#REF!", "#NAME?", "#NUM!", "#N/A" with Sheet::readFormula() method from xls files
- added support Windows-1251 encoding in xlsx files
- added support RGB colors without alpha component in xlsx files
- added a cell range support in formula expressions (xls)
- improved performance of Sheet::cellFormat() method (xls)
- optimized xls files reading
- fixed a bug with copying a sheet with pictures in Book::addSheet() (xls)
- fixed a memory bug when used a second parameter in Book::addSheet()
- fixed issue with nested quotes in formula expressions (xls)
- fixed bug with using a single quote in formula expressions (xls)
- fixed issue with loading some xlsx files which were created in Numbers on Mac ("Unknown exception")
- fixed bug with UTF-8 encoding in custom format strings (xlsx)
- fixed bug with reading some non-standard characters (xlsx)
- fixed bug in Sheet::groupRows() (xlsx)
- fixed bug with viewing some xls files on iPhone/MacOSX
- New methods:
- Sheet::hyperlinkSize()
- Sheet::hyperlink()
- Sheet::delHyperlink()
- Sheet::addHyperlink()
- Sheet::mergeSize()
- Sheet::merge()
- Sheet::delMergeByIndex()
- Sheet::splitInfo()
New in LibXL 3.5.4 (Nov 12, 2014)
- added xltx and xltm file support
- added scopeId parameter to Sheet::getNamedRange(), Sheet::setNamedRange(), Sheet::delNamedRange(), Sheet::namedRange() methods for specifying scope of named range.
- added Book::isTemplate() and Book::setTemplate() methods for detecting xltx files and converting from xlsx to xltx and vice versa
- added "hidden" parameter to Sheet::getNamedRange() and Sheet::namedRange() methods
- added support of built-in named ranges in Sheet::getNamedRange() method (xls)
- added compatibility between fonts/formats from xls files and fonts/formats from xlsx files (now formats and fonts from xls file can be used as initial parameter for Book::addFormat() and Book::addFont() methods for xlsx file and vice versa)
- added Sheet::rightToLeft() and Sheet::setRightToLeft() methods that specifies whether the sheet is in "right to left" display mode.
- added support shared formulas in Sheet::clear() method
- fixed bugs with loading some xls files
- fixed bug in Sheet::readFormula() (xls)
- fixed Sheet::isDate() method (xlsx)
- fixed bug with writing some non-standard characters (xlsx)
- fixed bug with writing some formula expressions with functions without arguments (xls)
- fixed bug with placing pictures into a sheet with non-default font (incorrect aspect ratio and size)
- fixed issue with overwriting some strings in xls files
- fixed bug with shared formulas (xls)
- fixed bug in Sheet::insertRow() for xls files
- fixed bug with extracting pictures in some xls files
New in LibXL 3.5.3 (Nov 12, 2014)
- added two methods for getting and setting date system:
- Book::isDate1904() and Book::setDate1904()
- fixed bug with reading some strings with underscore (_) characters (xlsx)
- fixed bug with loading some xlsx files
New in LibXL 3.5.2 (Nov 12, 2014)
- fixed bug with overwriting existing strings
- fixed bug in NoteSh record ("CalcDelta size is incorrect")
New in LibXL 3.5.1 (Nov 12, 2014)
- fixed bug with overwriting existing strings
New in LibXL 3.5.0 (Jun 21, 2013)
- added support of Strict Open XML Spreadsheet format (Excel 2013)
- increased precision of msec parameters in Book::dateUnpack() and Book::dataPack() methods. Now it is 1/1000 seconds.
- fixed bug with writing references to other sheets in formulas (xls)
- fixed bug with reading shared formulas from xlsx format
- fixed bug in Format::setPatternForegroundColor() and Format::setPatternBackgroundColor() methods (xlsx)
- added support of dual format files (BIFF8/BIFF5)
- added built-in named ranges for xls format
- fixed bug in namedRangeSize() for xls format
- fixed bug with named ranges that refer to external workbooks
- added support of characters which cannot be represented in XML (xlsx)
- added warning if named range contains multiple parts
- fixed bug with incorrect identification of 1900/1904 date formats in Excel for Mac (xlsx)
- fixed bug with reading some formulas (xls)
- fixed bug with writing formula with SUMPRODUCT function (thanks to Don Prouty, DSA) (xls)
- fixed bug with loading/saving some xlsx files with drawings
New in LibXL 3.4.2 (Apr 27, 2013)
- fixed NoteSh record (some xls files couldn't be loaded)
- fixed RRTabId record (Protected view mode was activated in Excel 2010 and Excel 2013 in some cases)
- fixed Book::insertSheet() method (named ranges, print areas, repeat rows and columns didn't remain in corresponding sheets)
- fixed Style record (some xls files couldn't be loaded)
- added quotes for names with hyphen (xlsx)
- fixed bug in Sheet::delNamedRange() (xlsx)
- fixed bug with saving some xls files with pictures (output file was corrupt)
- fixed bug with crash in MinGW 4.7 (added __cdecl keyword for any compilers)
- fixed bug with Mac::Numbers compatibility
- fixed bug with overlapping of calculated values in cells with formula expression and format for xlsx format (no screen refresh)
- fixed bug in Sheet::writeFormula() method (xls) [ "incorrect token in formula" error message for some valid expressions ]
- fixes for Apple clang compiler
- updated ZipArchive library to version 4.5
- fixed bug with column-based named ranges in Sheet::getNamedRange() and Sheet::namedRange() methods for xlsx format fixed bug in Sheet::getPicture() for xlsx files
- fixed bug in Sheet::insertRow() for xls files
- fixed bug with loading some xlsx files ("mergeCell ref is invalid")
- fixed bug with length of sheet name in UTF-8 encoding
- fixed bug with loading some xlsx files ("bad end element" error)
- fixed bug with SUMPRODUCT function in formula expression (xls)
- fixed bug in Sheet::pictureSize() for xlsx files
New in LibXL 3.2.4 (Apr 26, 2012)
- Improvements:
- added two auxiliary methods for converting cell reference to row and column and vice versa
- added Sheet::getTopLeftView() and Sheet::setTopLeftView() methods for getting/setting a view position in the sheet
- added support for EMF pictures
- added multisheet reference support in formulas in xls format, for example: SUM(Sheet1:Sheet10!A1)
- New methods:
- Sheet::addrToRowCol()
- Sheet::rowColToAddr()
- Sheet::getTopLeftView()
- Sheet::setTopLeftView()
- Bug fixes:
- fixed bug with loading some files
- fixed performance issue with Sheet::setMerge() for xlsx files
- fixed bug in OfficeArtBlip record
- fixed bug with adding pictures to some xls files
- fixed bug with macro records in xls files
- fixed bug with writing strings with leading and trailing space symbols in xlsx format
- (added attribute xml:space="preserve" for such strings)
- fixed bug in Sheet::setRowHidden() for xls format
- fixed bug with getting named ranges in some xlsx files
- fixed bug in Sheet::setCol() method for widths in range from 0 to 1 for xlsx format
New in LibXL 3.2.3 (Dec 9, 2011)
- Improvements:
- added possibility to hide/unhide sheets
- Bug fixes:
- fixed bug in Book::addPicture2() for xlsx files
- fixed bugs with loading some xls files
- New methods:
- Sheet::hidden()
- Sheet::setHidden()
New in LibXL 3.2.2 (Sep 23, 2011)
- added support of inlineStr in cell's data type (xlsx)
- added checking length of sheet name (it's allowed maximum 31 characters)
- fixed bugs in copying formats and fonts, methods Book::addFormat() and Book::addFont() when are used initFormat and initFont parameters. Now it is possible to pass to these methods a format or a font from other workbook.
- improved non-unicode strings: if a conversion of wide character to a multibyte character is not possible in the current locale then LibXL uses '?' symbol in this place
- fixed bug in Sheet::colWidth()
- added R1C1 style formula support
- improved formula parsing, now it is possible to use comma (,) and semicolon (;) as parameter dividers in functions
- fixed bug in Sheet::removeCol() (xlsx)
- optimized speed in Sheet::clear() method
- optimized speed of firstRow/lastRow/firstCol/lastCol methods for xlsx part, added ignoring a trial banner in trial mode
- fixed bug with loss of formatting when user copy-paste cells between workbooks (xls)
- small memory usage optimization for xlsx part
- changed the open mode to "shared" for xlsx files
- fixed bug in the picture extraction algorithm: now Book::addPicture() and Sheet::getPicture() functions return zero-based indexes
New in LibXL 3.1.0 (Nov 18, 2010)
- Improvements:
- named ranges support
- RGB colors support for xls format
- added offset_x and offset_y parameters in Sheet::setPicture() method
- print area support
- print titles support (repeated rows and columns on each page)
- added two sheet's properties: summaryBelow and summaryRight for grouped cells
- reduced memory consumption for reading/writing xlsx files
- New methods:
- Sheet::setNamedRange()
- Sheet::delNamedRange()
- Sheet::setPrintRepeatRows()
- Sheet::setPrintRepeatCols()
- Sheet::setPrintArea()
- Sheet::clearPrintRepeats()
- Sheet::clearPrintArea()
- Sheet::groupSummaryBelow()
- Sheet::setGroupSummaryBelow()
- Sheet::groupSummaryRight()
- Sheet::setGroupSummaryRight()
- Bug fixes:
- fixed bugs in Sheet::setCol() and Sheet::groupCols() methods
- added stretch property for pictures in xlsx files
- fixed bug with adding pictures in existing xls-file
- fixed bug with shared formulas
New in LibXL 3.0.2 (Sep 15, 2010)
- improved writing performance for xlsx
- possibility of writing more than 65536 rows for xlsx
- possibility of keeping i386 and x64 libraries in the same folder
New in LibXL 3.0.0 (Aug 24, 2010)
- Excel 2007/2010 support (xlsx)
- Changes in binary interface:
- optimized reading speed and memory consumption for big files
- fixed bug with sheet's name in Japanese/Korean/Chinese languages in multi-byte interface
- changed behaviour of Sheet::split() method
- added method Sheet::setCellFormat()
- removed message "too many dir sectors - perhaps it's infinite loop" for large files
- fixed bug in OfficeArtFDGGBlock
- added access to list of formats and fonts in document
- added msec parameter in datePack/dateUnpack
- New methods:
- xlCreateXMLBook()
- Book::format()
- Book::formatSize()
- Book::font()
- Book::fontSize()
- Book::colorPack()
- Book::colorUnpack()
- Book::rgbMode()
- Book::setRgbMode()
- Sheet::setCellFormat()
New in LibXL 2.4.3 (Jun 8, 2010)
- added Sheet::setProtect() and Sheet::protect() methods
- fixed bug with loading xls files with form controls
- fixed bug in Sheet::writeFormula()
- fixed some incorrect relative references
- fixed bug with reading string values in shared formula
- fixed printZoom default value
- fixed .NET interface: Book::errorMessage(), Book::sheetCount(), Book::activeSheet()
- fixed bugs with loading some xls files
- fixed bug with reading coordinates in shared formula
- fixed bug with incorrect reading formula with external reference
New in LibXL 2.4.2 (May 12, 2010)
- Improvements:
- support BMP and DIB picture formats
- loading pictures from memory buffer
- New methods:
- Book::addPicture2()
- Bug fixes:
- fixed bug with reading shared formulas
- fixed issue with loading workbook with dropdown lists ("error in record FtLbsData")
- changed return type "unsigned short" to "int" in firstRow/lastRow/firstCol/lastCol methods
- restoring normal book state after loading error
- fixed datePack/dateUnpack for time values
- fixed bugs with loading some xls files
New in LibXL 2.4.0 (Feb 26, 2010)
- Improvements:
- formula support
- ability to change a default font
- New methods:
- Sheet::readFormula()
- Sheet::writeFormula()
- Sheet::isFormula()
- Book::defaultFont()
- Book::setDefaultFont()
New in LibXL 2.3.2 (Feb 2, 2010)
- fixed bug with saving some xls files
- fixed bug in margin methods
New in LibXL 2.3.0 (Jan 16, 2010)
- Improvements:
- read/write from/to memory buffer
- copying sheets and cells
- access to format for any cell (without detecting type)
- now library doesn't touch existing formats when user edits an existing document
- renaming sheets
- New methods:
- Book::loadRaw
- Book::saveRaw
- Book::copySheet
- Sheet::copyCell
- Sheet::cellFormat
- Sheet::setName
- Bug fixes:
- iWork::Numbers opens xls files successfully
- fixed Sheet::colWidth() and Sheet:setCol(), precise column's widths now
- fixed issues with loading some xls files
- fixed bug when user loads several xls files in memory at a time
- fixed Sheet::setRow()
- values from firstRow/lastRow/firstCol/lastCol methods are updating in run-time
New in LibXL 2.2.2 (Oct 15, 2009)
- Improvements:
- inserting/removing rows/columns
- removing merges
- New methods:
- Sheet::insertCol()
- Sheet::insertRow()
- Sheet::removeCol()
- Sheet::removeRow()
- Sheet::delMerge()
New in LibXL 2.2.1 (Sep 21, 2009)
- new method Sheet::isDate() for fast detecting any date/time values
- fixed Sheet::split()