Version 5.2.0 (2026-05-15)
-------------------------------------------------- 
       
     - fixed the vulnerability CVE-2026-22184, updated zlib to the version 1.3.2

     - added possibility to read data validations from xlsx files
 
     - added possibility to remove filters from tables (xlsx)

     - added the support for xlsx files in the Book::loadWithoutEmptyCells()

     - fixed a bug with reading strings with incorrect character encoding in the Sheet::readStr() on Linux/MacOSX (xls)

     - fixed an issue with loading some xls files with message "read error: record id can't be 0"

     - fixed an issue with corrupting output files in the AutoFilter::setSort() method (xlsx)

     - fixed the unhandled exception in the Format::borderLeftColor() method (xlsx)

New methods:

     - Sheet::dataValidation()
     - Sheet::dataValidationSize()

     - Table::isAutoFilter()
     - Table::removeFilter()


Version 5.1.0 (2026-01-20)
-------------------------------------------------- 
                         
     - added the Book::errorCode() for getting error codes
 
     - added possibility to read conditional formats with the Book::conditionalFormat()

     - added possibility to remove conditional formattings with the Sheet::removeConditionalFormatting()

     - added possibility to clear all data with the Book::clear()

     - fixed a bug with decrypting password-protected workbooks for the 32-bit version of the library

     - fixed an issue that caused a crash when using an empty password

New methods:

     - Book::errorCode()
     - Book::conditionalFormat()
     - Book::conditionalFormatSize()
     - Book::clear()
 
     - Sheet::conditionalFormatting()
     - Sheet::removeConditionalFormatting()
     - Sheet::conditionalFormattingSize()
     

Version 5.0.1 (2025-12-18)
--------------------------------------------------

     - added the support of one more encryption algorithm 
       (LibXL supports ECMA-376 standard and agile encryptions with SHA-1 and SHA-512 hashing algorithms)

     - added password verifications with the error message "incorrect password"

     - added the Book::loadInfoRaw() for loading only information about sheets from the workbook in memory buffer

     - fixed an issue with decrypting password protected xlsx files on Linux and Mac

New methods:

     - Book::loadInfoRaw()

     
Version 5.0.0 (2025-12-05)
--------------------------------------------------

     - added the support of password protected xlsx files (only loading)

     - fixed a performance issue with reading cells from some large non-typical xlsx files 
       that don't use "r" attributes in rows

     - fixed issues with reading and writing code units above U+FFFF

     - fixed an issue with Valgrind warning "Invalid read of size 1"

     - fixed an issue with copying sheets with space characters in the name (xlsx)

     - fixed issues with using LET, LAMBDA, BYROW and BYCOL functions (xlsx)

     - fixed issues with reading some dates

New methods:

     - Book::setPassword()


Version 4.6.0 (2025-04-01)
--------------------------------------------------

     - added the support of tables (xlsx)

     - added the updating conditional formattings in Sheet::insertCol(), Sheet::insertRow(), Sheet::removeCol() and Sheet::removeRow() methods 

     - changed the sorting behavior from case-senstitive to case-insensitive in the same way as in Excel

     - improved the sorting performance

     - fixed the vulnerability CVE-2023-45853 in MiniZip

New methods:

     - Sheet::addTable()
     - Sheet::getTableByName()
     - Sheet::getTableByIndex()
     - Sheet::applyFilter2()

     - Table::name()
     - Table::setName()
     - Table::ref()
     - Table::setRef()
     - Table::autoFilter()
     - Table::style()
     - Table::setStyle()
     - Table::showRowStripes()
     - Table::setShowRowStripes()
     - Table::showColumnStripes()
     - Table::setShowColumnStripes()
     - Table::showFirstColumn()
     - Table::setShowFirstColumn()
     - Table::showLastColumn()
     - Table::setShowLastColumn()
     - Table::columnSize()
     - Table::columnName()
     - Table::setColumnName()


Version 4.5.1 (2025-01-07)
--------------------------------------------------

     - added the Sheet::setBorder() method for drawing borders in the area of cells

     - fixed reading emojis and unicode surrogate pairs in the Sheet::readStr() on Linux/Mac

     - fixed a bug with skipping some rows on reading from some xlsx files from 3rd-party vendors (xlsx)

     - updated Fortran interface


Version 4.5.0 (2024-11-22)
--------------------------------------------------

     - added support of workbook properties (xlsx)

     - added support of XLOOKUP, LET and XMATCH functions (xlsx)

     - added access to default column and row formats: Sheet::colFormat() and Sheet::rowFormat() methods

     - added the updating/moving existing pictures after inserting or removing rows and columns 
       with Sheet::insertRow(), removeRow(), insertCol() and removeCol() methods (xlsx)

     - added the Book::removeAllPhonetics() method: removes all phonetics data (furigana) from a workbook (xlsx)

     - added some specific language locales for detecting dates in the Sheet::isDate() (xlsx)

     - fixed a precision error with calculating RGB values from theme colors (xlsx)

     - fixed a bug with writing a corrupted file after using Sheet::removeCol(), Sheet::insertCol(), Sheet::insertRow() methods 
       with shared formulas in a sheet (xlsx)

     - fixed a bug with using a sheet name with a quote together with the Sheet::setPrintRepeatRows() and Sheet::setPrintRepeatCols() methods (xlsx)

     - fixed a bug with loading some xlsx files

New methods:

     - Book::coreProperties()
     - Book::removeAllPhonetics()

     - CoreProperties::title()
     - CoreProperties::setTitle()
     - CoreProperties::subject()
     - CoreProperties::setSubject()
     - CoreProperties::creator()
     - CoreProperties::setCreator()
     - CoreProperties::lastModifiedBy()
     - CoreProperties::setLastModifiedBy()
     - CoreProperties::created()
     - CoreProperties::setCreated()
     - CoreProperties::createdAsDouble()
     - CoreProperties::setCreatedAsDouble()
     - CoreProperties::modified()
     - CoreProperties::setModified()
     - CoreProperties::modifiedAsDouble()
     - CoreProperties::setModifiedAsDouble()
     - CoreProperties::tags()
     - CoreProperties::setTags()
     - CoreProperties::categories()
     - CoreProperties::setCategories()
     - CoreProperties::comments()
     - CoreProperties::setComments()
     - CoreProperties::removeAll()

     - Sheet::colFormat()
     - Sheet::rowFormat()


Version 4.4.1 (2024-09-09)
--------------------------------------------------

     - fixed a bug with sorting in the Sheet::applyFilter() (xlsx)


Version 4.4.0 (2024-08-30)
--------------------------------------------------

    - fixed the vulnerability CVE-2023-45853, updated zlib to the version 1.3.1

    - added the sorting of single-cell hyperlinks for the AutoFilter (xlsx)

    - added the Book::setDpiAwareness() method (xlsx)

    - fixed a bug with inserting/removing columns to/from tables in Sheet::insertCol() and Sheet::removeCol() methods (xlsx)

    - fixed a bug with reading values from form controls (xlsx)

    - fixed a bug with reading formatted inline strings (xlsx)

    - fixed a bug with writing a corrupted workbook with a single quote in a sheet name and named range or print area with using this sheet (xlsx)

    - fixed a memory leak in the Book::loadSheet() for xls files

    - fixed a memory leak in the Book::delSheet() for xls files


Version 4.3.0 (2024-04-04)
--------------------------------------------------

    - added the possibility to remove all VBA code and macros from xlsm and xlsb files

    - added the possibility to remove all printer settings from xlsx, xlsm and xlsb files

    - added the possibility to set an active cell for splitted sheets (xlsx)

    - added keepAllSheets flag for the partial loading methods, if it's true, all sheets are saved back with Book::save() method, 
      but only one specified sheet is available for processing, thus LibXL can save more memory. It works only for xlsx files,
      LibXL ignores this flag for xls files 

    - added the multi-level sorting for AutoFilter::addSort() and Sheet::applyFilter() (xlsx)

    - added the updating/moving existing tables with Sheet::insertRow() and Sheet::removeRow() methods (xlsx)

    - improved SVG support

    - fixed a bug with adding a hyperlink after setting a picture, the output xlsx file was unreadable by Excel

    - fixed a bug with incorrect return values in Sheet::rowHeight() and Sheet::rowHeightPx() for non-standard DPI settings for some xlsx files

    - fixed Sheet::setPrintAread(), Sheet::setPrintRepeatRows(), Sheet::setPrintRepeatCols() for working with Japanese/Chinese sheet names

    - fixed a bug with reading some values in double quotes in the Sheet::readFormula() (xlsx)

    - fixed a bug with a workbook overwriting dialog message in Excel when an existing sheet is copied in xlsx file

    - fixed a bug with reading some cells after using functions which changes sheet's size (xlsx)

    - fixed a bug with reading tables in some xlsx files

    - fixed some bugs with partial loading/saving some workbooks in the Book::loadSheet() and Book::save() methods (xlsx)

    - fixed a bug with using non UTF-8 character encodings on Linux and Mac

    - fixed a bug with reading some data from a partially loaded workbook (xlsx)

New methods:

    - Book::removeVBA()
    - Book::removePrinterSettings()


Version 4.2.0 (2023-06-30)
--------------------------------------------------

     - improved the writing performance for numbers in xlsx files

     - added built-in styles support for xlsx files

     - added SVG support for the Book::addPicture() for xlsx files

     - added the possibility to write hyperlinks with changing the color to purple after clicking on the link 

     - added the possibility to read arrays from formula expressions (xls)

     - added the possibility to define column width and row height in pixels

     - added the Sheet::getTable() helper method for getting a table by name

     - Sheet::firstRow(), Sheet::lastRow(), Sheet::firstCol(), Sheet::lastCol() methods take merged cells into account now (xls)

     - fixed the Sheet::readStr() with reading some numbers with excess precision

New methods:

     - Book::addFormatFromStyle()
 
     - Sheet::setColPx()
     - Sheet::setRowPx()
     - Sheet::getTable()


Version 4.1.2 (2023-04-12)
--------------------------------------------------

     - added the Sheet::hyperlinkIndex() for checking if the cell contains a link

     - fixed a bug with loading some xlsx files ("Element not found")

     - fixed a bug with writing some xlsx files with empty XML inside
 
     - fixed a bug with writing empty strings for xls files

     - fixed an output precision for reading numbers by the Sheet::readStr()


Version 4.1.1 (2023-03-03)
--------------------------------------------------

     - fixed a bug with getting correct width and height of picture in the Sheet::getPicture() method 
       in accordance with current DPI settings (xlsx, only Windows)

     - updated zlib to version 1.2.13


Version 4.1.0 (2023-01-30)
--------------------------------------------------

     - added the conditional formatting support for xlsx files (new ConditionalFormatting and ConditionalFormat classes)

     - added the possibility to get/set an active cell and selection ranges

     - added the possibility to get a color from sheet tabs

     - improved the string overwriting performance for xls files

     - improved the reading performance for xlsx files

     - improved the sorting performance in AutoFilter (xlsx)
     
     - added ARM64 support for Windows

     - fixed a bug with cutting sheet names to less than 31 characters in Chinese

     - fixed a bug with loading some xls files ("Label size is incorrect")

     - fixed a bug with union multiple column filters in the Sheet::applyFilter() method (xlsx)

     - fixed an issue with loading some xls files (error message "invalid jpg file")

     - fixed an issue with encoding dates before the 1st of March 1900 in the Book::datePack()

     - fixed an issue with loading some xlsx files with special unicode character BOM (byte order mark)
       at unexpected position inside XML files

     - fixed issues with copying existing sheet with named ranges in the Book::insertSheet() what led to corrupted output files
 
     - fixed a new-delete-type-mismatch memory issue on Linux and now LibXL works with jemalloc properly

     - fixed an issue with saving UTF-8 encoded filename in the Book::save() method on Windows (xlsx)

     - fixed a hanging issue with loading some xls files 

     - fixed a bug with saving xlsx files with a lot of OLE objects

     - removed the PY_SSIZE_T_CLEAN warning in python interface

New methods:

     - Book::addConditionalFormat()

     - Sheet::addConditionalFormatting()
     - Sheet::getActiveCell()
     - Sheet::setActiveCell()
     - Sheet::selectionRange()
     - Sheet::addSelectionRange()
     - Sheet::removeSelection()
     - Sheet::tabColor()
     - Sheet::getTabColor()

     - ConditionalFormatting::addRange()
     - ConditionalFormatting::addRule()
     - ConditionalFormatting::addTopRule()
     - ConditionalFormatting::addOpNumRule()
     - ConditionalFormatting::addOpStrRule()
     - ConditionalFormatting::addAboveAverageRule()
     - ConditionalFormatting::addTimePeriodRule()
     - ConditionalFormatting::add2ColorScaleRule()
     - ConditionalFormatting::add2ColorScaleFormulaRule()
     - ConditionalFormatting::add3ColorScaleRule()
     - ConditionalFormatting::add3ColorScaleFormulaRule()

     - ConditionalFormat::font()
     - ConditionalFormat::numFormat()
     - ConditionalFormat::setNumFormat()
     - ConditionalFormat::customNumFormat()
     - ConditionalFormat::setCustomNumFormat()
     - ConditionalFormat::setBorder()
     - ConditionalFormat::setBorderColor()
     - ConditionalFormat::borderLeft()
     - ConditionalFormat::setBorderLeft()
     - ConditionalFormat::borderRight()
     - ConditionalFormat::setBorderRight()
     - ConditionalFormat::borderTop()
     - ConditionalFormat::setBorderTop()
     - ConditionalFormat::borderBottom()
     - ConditionalFormat::setBorderBottom()
     - ConditionalFormat::borderLeftColor()
     - ConditionalFormat::setBorderLeftColor()
     - ConditionalFormat::borderRightColor()
     - ConditionalFormat::setBorderRightColor()
     - ConditionalFormat::borderTopColor()
     - ConditionalFormat::setBorderTopColor()
     - ConditionalFormat::borderBottomColor()
     - ConditionalFormat::setBorderBottomColor()
     - ConditionalFormat::fillPattern()
     - ConditionalFormat::setFillPattern()
     - ConditionalFormat::patternForegroundColor()
     - ConditionalFormat::setPatternForegroundColor()
     - ConditionalFormat::patternBackgroundColor()
     - ConditionalFormat::setPatternBackgroundColor()
     

Version 4.0.4 (2022-06-14)
--------------------------------------------------

     - fixed a bug with copying formats in the Book::addFormat() method, left and right border colors weren't copied (xlsx)

     - fixed a bug with duplicating some controls elements on saving xlsx files (xlsx)

     - fixed a bug with string concatenations in the Book::addRichString() method (xls)

     - fixed a bug with copying an existing sheet in the Sheet::addSheet() method for the latest versions of xlsx files (xlsx)


Version 4.0.3 (2022-01-31)
--------------------------------------------------

     - fixed a bug with corrupted xlsx files on loading/saving 

     - fixed a bug with saving xlsx files in non-unicode mode on Windows

     - fixed an issue with loading some xlsx files

     - fixed a bug with using a wide string (const wchar_t*) in filename parameter of the Book::save() method
       and _UNICODE preprocesor definition for saving xls files on non-Windows platforms (xls)

     - fixed a bug with reading formula expressions with functions with numbers in names such as LOG10 in R1C1 reference mode (xls)
   
     - added using dyDescent attribute in the Sheet::setDefaultRowHeight() for correct height scaling on different displays,
       works properly only if a host application has DPI awareness mode (only Windows, xlsx)


Version 4.0.2 (2022-01-24)
--------------------------------------------------

     - restored a compatibility with WPS Office for xlsx files

     - added using dyDescent attribute in the Sheet::setRow() for correct height scaling on different displays,
       works properly only if a host application has DPI awareness mode (only Windows, xlsx)

     - fixed XML eXternal Entity injection (XXE) security issue by disabling DTD entity expansion (xlsx)

     - fixed a bug in the Book::save() with using non-ascii characters for workbook name (xlsx)

     - fixed an issue with loading some xlsx files

     - fixed a bug in the Sheet::writeFormula() with using named ranges in formula expressions (xls)


Version 4.0.1 (2021-12-08)
--------------------------------------------------

     - fixed an issue with a screen resolution/scaling of UI elements of host application on Windows (removed DPI awareness)

     - fixed a bug with reading strings with incorrect character encoding in the Sheet::readStr() on Linux/MacOSX (xlsx)

     - fixed a bug with writing a corrupted workbook with huge amounts of cells (xlsx)

     - fixed bugs with loading some xls/xlsx files

     - fixed a bug with preserving spaces in strings (xlsx)
     
     - fixed the Sheet::readStr() with reading some numbers (rounding) (xlsx)


Version 4.0.0 (2021-09-10)
--------------------------------------------------

     - improved compatibility with the latest versions of Excel (updated XSD schemes) (xlsx)

     - added theme/tint color support (xlsx)
    
     - added possibility to read/write from/to controls (checkboxes, compoboxes, listboxes) (xlsx)

     - added High DPI support to adding pictures
   
     - added aarch64 platform for Linux

     - added the AutoFilter::addSort() for multiple level sorting

     - added double rounding for reading numbers with the Sheet::readStr() (xlsx)
   
     - added an initialization of AutoFilter columns for reading

     - fixed the Sheet::readStr() for reading numbers and booleans from formula expressions (xls)

     - fixed a bug with writing unexpected _xlfn to some formula expressions (xlsx)

     - fixed a bug in the Sheet::applyFilter() with using a custom filter

     - fixed memory leaks in Delphi interface

New methods:

     - Sheet::formControlSize()
     - Sheet::formControl()

     - FormControl::objectType()

     - FormControl::checked()
     - FormControl::setChecked()

     - FormControl::fmlaGroup()
     - FormControl::setFmlaGroup()

     - FormControl::fmlaLink()
     - FormControl::setFmlaLink()      

     - FormControl::fmlaRange()
     - FormControl::setFmlaRange()

     - FormControl::fmlaTxbx()
     - FormControl::setFmlaTxbx()

     - FormControl::name()
     - FormControl::linkedCell()
     - FormControl::listFillRange()
     - FormControl::macro()
     - FormControl::altText()

     - FormControl::locked()
     - FormControl::defaultSize()
     - FormControl::print()
     - FormControl::disabled()

     - FormControl::item()
     - FormControl::itemSize()
     - FormControl::addItem()
     - FormControl::insertItem()
     - FormControl::clearItems()

     - FormControl::dropLines()
     - FormControl::setDropLines()

     - FormControl::dx()
     - FormControl::setDx()

     - FormControl::firstButton()
     - FormControl::setFirstButton()

     - FormControl::horiz()
     - FormControl::setHoriz()

     - FormControl::inc()
     - FormControl::setInc()

     - FormControl::getMax()
     - FormControl::setMax()

     - FormControl::getMin()
     - FormControl::setMin()

     - FormControl::multiSel()
     - FormControl::setMultiSel()

     - FormControl::sel()
     - FormControl::setSel()

     - FormControl::fromAnchor()
     - FormControl::toAnchor()


Version 3.9.4 (2021-01-13)
--------------------------------------------------

     - added ARMv7 hard float build to the LibXL for Linux package
   
     - added Mac Catalyst support to the LibXL for iOS package 

     - improved compatibility with WPS Office after grouping rows and columns

     - fixed a bug in the Book::setMerge() method and with copying existing formats and fonts


Version 3.9.3 (2020-12-23)
--------------------------------------------------

     - improved performance

     - fixed a bug in the Sheet::groupRows() with overwriting outline level (xls)

     - fixed a bug with applying formatting in the Sheet::setMerge() for formula cells (xls)

     - fixed a bug in the Sheet::applyFilter() for non-unicode strings in filters (xlsx)

     - fixed a bug with handling /r and /n symbols in RichString::addText() (xlsx)

     - fixed a bug with getting Japanese characters from the Sheet::hyperlink() (xlsx)

     - fixed a bug with '.' (decimal point) at the end of the string for whole numbers in the Sheet::readStr()


Version 3.9.2 (2020-09-30)
--------------------------------------------------

     - added support of new formula functions in Excel for Office 365 / Excel 2019 (xlsx)

     - added a possibility to extract compressed pictures with the Book::getPicture() (xls)

     - added quoting for \xFF08 and \xFF09 characters (xlsx)

     - fixed a bug with reading ISO 8601 date/times (xlsx)

     - fixed a bug in the Sheet::setTabColor() when color is overwritten (xlsx)

     - fixed a bug in the Sheet::getNamedRange() for sheet names with exclamation (!) (xlsx)

     - fixed a bug in the Sheet::setPrintArea() for sheet names with apostrophe (') (xlsx)

     - fixed a bug with partially loading in the Sheet::loadRaw() (xls)

     - fixed an issue with unavailable table information in some files (xlsx)

     - fixed error messages from the Book::errorMessage() after using the Book::load() method with failure (xlsx)

     - fixed a bug with writing strings with phonetic blocks (xls)


Version 3.9.1 (2020-05-12)
--------------------------------------------------

     - added Sheet::firstFilledRow(), Sheet::lastFilledRow(), Sheet::firstFilledCol() and Sheet::lastFilledCol() methods
       which return the boundaries of filled cells and ignore blank/format cells

     - Sheet::firstRow(), Sheet::lastRow(), Sheet::firstCol() and Sheet::lastCol() methods return the boundaries of used cells 
       including blank/format cells

     - added initFont parameter to the RichString::addFont() method

     - added xlSheetWriteStrAsNum() in C headers

     - now the library switches to the normal mode (non-strict) for possibility to continue
       to use other methods with the current book instance after unsuccessful loading of xlsx file

     - now the Sheet::setMerge() copies top left cell format for all merged cells (xls)

     - fixed a bug with reading empty strings (xls)

     - fixed a bug with loading some xlsx files (error message "Required attribute(s) missing")

     - fixed a bug with reading some fonts in the RichString::getText() method
   
     - fixed a bug with using the Sheet::setPrintRepeatRows() when the name of sheet contains special characters (xlsx)

New methods:

     - Sheet::firstFilledRow()
     - Sheet::lastFilledRow()
     - Sheet::firstFilledCol()
     - Sheet::lastFilledCol()


Version 3.9.0 (2020-03-30)
--------------------------------------------------

     - added a rich string with mixing fonts support (different fonts in the same cell)

     - added possibility to remove pictures with Sheet::removePicture() and Sheet::removePictureByIndex() methods

     - added possibility to change calculation options (Manual/Automatic/Automatic except for data tables)

     - added support of ISO 8601 date/times for Strict Open XML Spreadsheets (xlsx)

     - fixed the issue with loading some xlsx files with frozen rows in Excel for iOS (xlsx)
       (changed the state attribute from "frozenSplit" to "frozen")

     - fixed a bug with loading some xls files

     - fixed a bug with losing formats in empty cells when loading/writing xls files from the version 3.8.8

     - LibXL for Mac and iOS are signed and notarized now

New methods:

     - Book::addRichString()
     - Sheet::isRichStr()
     - Sheet::readRichStr()
     - Sheet::writeRichStr()
     - RichString::addFont()
     - RichString::addText()
     - RichString::getText()
     - RichString::textSize()
     - Sheet::removePicture()
     - Sheet::removePictureByIndex()
     - Book::calcMode()
     - Book::setCalcMode()


Version 3.8.8 (2019-11-28)
--------------------------------------------------

     - 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


Version 3.8.7 (2019-11-14)
--------------------------------------------------

     - fixed a critical bug from the version 3.8.6 with loading some xlsx files (please do not use the version 3.8.6)


Version 3.8.6 (2019-10-21)
--------------------------------------------------

     - 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()


Version 3.8.5 (2019-04-24)
--------------------------------------------------

     - 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)


Version 3.8.4 (2018-12-18)
--------------------------------------------------

     - 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)
     

Version 3.8.3 (2018-09-03)
--------------------------------------------------

     - 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()


Version 3.8.2 (2018-02-12)
--------------------------------------------------

     - 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


Version 3.8.1 (2017-09-13)
--------------------------------------------------

     - 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)


Version 3.8.0 (2017-04-21)
--------------------------------------------------

     - 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()


Version 3.7.2 (2016-11-27)
--------------------------------------------------

      - changed 3 overloaded Book::load() methods to Book::load(), Bool::loadSheet() and Book::loadPartially() for
        correct working in C++ Builder


Version 3.7.1 (2016-11-09)
--------------------------------------------------

      - 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 package

      - fixed a bug with unlocked pictures in protected sheets (xls)


Version 3.7.0 (2016-09-29)
--------------------------------------------------

      - added AutoFilter support (xlsx)

      - added Sheet::addIgnoredError() method for possibility to ignore some errors
        (green triangles on left sides of cells)

      - added password support and enhanced protection properties to Sheet::setProtect() method

      - added Sheet::setTabColor() method for setting sheet tab colors

      - added copying named ranges together with copying sheets

      - added Sheet::removeComment() method for removing comments in xls files

      - added Sheet::writeFormulaNum(), Sheet::writeFormulaStr() and Sheet::writeFormulaBool() methods
        for writing formula expressions with precalculated values

      - improved precision for autofit feature for non-windows platforms

      - added Sheet::table() and Sheet::tableSize() methods

      - added Sheet::writeError() method

      - added correct processing rows with r = "0" in xlsx files

      - now Sheet::readStr() method can read numbers, 
        added CellType parameters to Sheet::writeStr() for writing strings as numbers (xlsx)

      - changed behavior of Book::setLocale() method, UTF-8 value is ignored for wide strings now

      - added a recalculation of Sheet::lastRow() value after using of Sheet::clear() 
        and Sheet::removeRow() methods (xls)

      - taken into account also row size changes for Sheet::lastRow() according to UsedRange COM Interface (xls)

      - improved algorithms with ColInfo records for better compability with old Excel applications,
        modified Sheet::setCol() and Sheet::groupCols() methods (xls)

      - fixed a bug with reading data from rows and cells without explicitly specified references in xlsx files

      - fixed Sheet::removeRow() method (xls)

      - fixed Sheet::clear() method (xls)

      - fixed a bug in Book::delSheet() with removing necessary named ranges

      - fixed a bug with reading of numbers in some xlsx files (issue with corrupted locale)

      - fixed a bug in Sheet::setPicture2() with ignoring pos parameter for more than one pictures

      - fixed a bug in Book::dateUnpack() with return 1000 ms in some cases 

      - fixed a bug in Book::dateUnpack() method for dates before 1900-03-01

      - fixed a bug in XMLSheetImplT::calcFirstRow()

      - fixed Sheet::cellType() for a cell with formula string (t="str") (xlsx)

      - fixed an issue with loading some non-standard xlsx files

      - fixed a bug in Sheet::insertCol() (xlsx)

      - fixed issues with Sheet::setCol() on Mac (xlsx)

      - fixed a bug in Sheet::getPicture() for xlsx files
        (it was impossible to get correct parameters rowBottom, colRight, width and height for some pictures)

      - fixed Sheet::readStr() method in .NET wrapper

      - fixed a bug in Sheet::removeRow() (xlsx)

      - fixed a bug in Sheet::namedRangeSize() (xls)

      - fixed a bug with loading some xls files

      - fixed a python wrapper

New methods:
      
      - Sheet::addIgnoredError()
      - Sheet::setTabColor()
      - Sheet::removeComment() (xls)
      - Sheet::writeFormulaNum()
      - Sheet::writeFormulaStr()
      - Sheet::writeFormulaBool()
      - Sheet::writeError()
      - Sheet::table()
      - Sheet::tableSize()

New methods only for xlsx format:

      - Sheet::autoFilter()
      - Sheet::applyFilter()
      - Sheet::removeFilter()
      - AutoFilter::getRef()
      - AutoFilter::setRef()
      - AutoFilter::column()
      - AutoFilter::columnSize()
      - AutoFilter::columnByIndex()
      - AutoFilter::getSortRange()
      - AutoFilter::getSort()
      - AutoFilter::setSort()
      - FilterColumn::index()
      - FilterColumn::filterType()
      - FilterColumn::filterSize()
      - FilterColumn::filter()   
      - FilterColumn::addFilter()  
      - FilterColumn::getTop10()   
      - FilterColumn::setTop10()   
      - FilterColumn::getCustomFilter()   
      - FilterColumn::setCustomFilter()   
      - FilterColumn::clear()   
      

Version 3.6.5 (2015-11-18)
--------------------------------------------------

       - fixed CRITICAL bug in "LibXL for Linux" package with reading numbers (xlsx)

       - fixed bug with overwriting existing cell format if format parameter isn't specified or equals 0 (xlsx)

       - fixed bug with loading some xlsx files

       - taken into account also row size changes for Sheet::lastRow() according to UsedRange COM Interface


Version 3.6.4 (2015-09-24)
--------------------------------------------------
  
       - 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


Version 3.6.3 (2015-09-17)
--------------------------------------------------

       - 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


Version 3.6.2 (2015-04-28)
--------------------------------------------------

       - 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()


Version 3.6.1 (2014-11-11)
--------------------------------------------------

       - 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


Version 3.6.0 (2014-07-14)
--------------------------------------------------

       - added autofit column width support 
         (use -1 for width parameter in Sheet::setCol() method)

       - added hyperlink support 

       - added direct access to merges

       - 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 XML 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)

New methods:

       - Sheet::mergeSize()

       - Sheet::merge()

       - Sheet::delMergeByIndex()

       - Sheet::hyperlinkSize()

       - Sheet::hyperlink()

       - Sheet::delHyperlink()

       - Sheet::addHyperlink()

       - Sheet::splitInfo() 


Version 3.5.4 (2014-01-10)
--------------------------------------------------

       - 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 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 in is "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


Version 3.5.3 (2013-07-03)
--------------------------------------------------

       - 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


Version 3.5.2 (2013-06-25)
--------------------------------------------------

       - fixed bug with overwriting existing strings

       - fixed bug in NoteSh record ("CalcDelta size is incorrect")


Version 3.5.1 (2013-06-21)
--------------------------------------------------

       - fixed bug with overwriting existing strings


Version 3.5.0 (2013-06-19)
--------------------------------------------------

       - 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


Version 3.4.2 (2013-04-25)
--------------------------------------------------

       - 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)

       - 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


Version 3.4.1 (2013-01-04)
--------------------------------------------------

       - added Book::sheetType() method for detection of chart sheet

       - fixed bug with loading some xls files

       - fixed bug in Sheet::delNamedRange() for xls files

       - fixed bug in Sheet::writeNum() method


Version 3.4.0 (2012-12-26)
--------------------------------------------------

       - added support of xlsm files

       - added UTF-8 support (mode is activated with book->setLocale("UTF-8"))

       - fixed bugs with loading some xls and xlsx files

       - fixed compatibility issues with Numbers for Mac

       - added support of empty cells in Sheet::cellFormat()

       - changed format picture property from "Move but don't size with cells" to "Move and size with cells"

       - fixed Sheet::setNamedRange(), Sheet::setPrintArea() and Sheet::setName() methods 
         for sheet's names with spaces (xlsx)

       - fixed bugs with some formula expressions with IF and AND functions (xls)
 
       - fixed bug with saving multi formatted cells in xlsx files

       - fixed bug in Book::delSheet() for xlsx files

       - fixed bug with reading some kind of error values

       - fixed issues with adding pictures into preloaded workbooks with pictures (xls)

       - fixed bug in Book::saveRaw() method (xls)

       - fixed possible memory leaks due to mismatched malloc/free functions (xlsx)

       - fixed bug in Sheet::cellFormat()

       - fixed bug with format/font inheritance for xlsx files

       - fixed Sheet::setPrintRepeatCols() method for xlsx files

       
Version 3.3.1 (2012-08-07)
--------------------------------------------------

       - fixed issue with adding pictures (red cross images) in xls files


Version 3.3.0 (2012-08-06)
--------------------------------------------------
Improvements:

       - added preserving macros and properties for xls files

       - added fullCalcOnLoad="true" attribute for xlsx files,
         instruction for Excel to calculate all formulas on loading

       - added defaultRowHeight property for xlsx files

       - changed internal version for xls files

       - added checking for corrupt xls files

Bug fixes:

       - fixed Sheet::getNamedRange(), Sheet::namedRangeSize() and Sheet::namedRange() methods (xls)

       - fixed Sheet::removeRow() for xls files

       - fixed bug in Sheet::getNamedRange() method (xlsx)

       - fixed bug with percent operator in formulas (xls)

       - fixed bug in Book::delSheet() method

       - fixed bug in Sheet::setPicture() method (xlsx)

       - fixed bug with comments (xls)


Version 3.2.4 (2012-04-25)
--------------------------------------------------
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


Version 3.2.3 (2011-10-12)
--------------------------------------------------
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()


Version 3.2.2 (2011-09-22)
--------------------------------------------------

       - 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


Version 3.2.1 (2011-08-08)
--------------------------------------------------

       - fixed critical bug from previous version: incorrect reading/writing numbers
         with decimal point in xlsx files

       - fixed bug in Sheet::readNum() and Sheet::writeNum() for big-endian platforms

       - fixed bug with loading some xls file, before Book::load() can incorrectly 
         return false with error message "Xls::read(): workbook section is not found"


Version 3.2.0 (2011-07-25)
--------------------------------------------------
Improvements:

       - added possibility to insert a new sheet at any position

       - added possibility to extract pictures

       - added possibility to extract page breaks

       - added possibility to extract named range by name (Sheet::getNamedRange) and by index (Sheet::namedRange)

       - added possibility to fit a sheet to specified number of pages (Sheet::setPrintFit)

       - added access to R1C1 reference style property (Book::refR1C1 and Book::setRefR1C1)

       - added BIFF version property for xls files (Book::biffVersion)

       - added return value for Book::setLocale() method

       - improved Sheet::writeFormula(), added support references to other sheets within the workbook

       - improved method Sheet::setPicture2(): picture takes size of underlying cell/merging cells 
         if width and height aren't specified

       - removed line breaks in xml files (xlsx)

New methods:
 
       - Book::insertSheet()

       - Book::pictureSize()

       - Book::getPicture()

       - Book::refR1C1()

       - Book::setRefR1C1()

       - Book::biffVersion()

       - Sheet::pictureSize()

       - Sheet::getPicture()

       - Sheet::getHorPageBreakSize()

       - Sheet::getHorPageBreak()

       - Sheet::getVerPageBreakSize()

       - Sheet::getVerPageBreak()

       - Sheet::getNamedRange()      

       - Sheet::namedRangeSize()

       - Sheet::namedRange()

       - Sheet::getPrintFit()

       - Sheet::setPrintFit()

Bug fixes:

       - fixed bug in Sheet::getNamedRange()

       - fixed string interoperability in .NET wrapper

       - fixed bug in Sheet::isDate() method for xlsx files

       - fixed bug with reading formatted strings

       - fixed bug in writeFormula 
         (removed error message "toReversePolish: unknown token" for some correct values)

       - fixed bug with load/save conditional formatting

       - fixed bug in Sheet::isDate() method 

       - fixed bug in ExternSheet record (xls)

       - fixed method Book::delSheet() (xls)

       - fixed Book::setActiveSheet(): deselecting other sheets (xlsx)

       - fixed Sheet::setPicture2(): checking ranges of offset_x and offset_y parameters (xls)

       - fixed bug in fixed Book::delSheet(): removing definedName element (xlsx)

       - fixed bug in Sheet::setPrintRepeatRows() and Sheet::setPrintRepeatCols(): added quotation for sheet's name 
         with space symbols (xlsx)

       - fixed bug in Sheet::setName(): added checking dependencies in definedNames block (xlsx)

       - fixed Sheet::setPicture()

       - fixed Sheet::setName(), added checking dependencies for old name in xlsx-file

       - fixed Sheet::lastRow() and Sheet::lastCol(), taken into account non-default height of cell

       - method Sheet::getNamedRange() is case-insensitive now

       - fixed bug with "Unexpected attribute" error for xml:space attribute in formula element (xlsx)

       - fixed addPicture/setPicture for different sheets (xlsx)

       - fixed bug when writing string constants in formulas (xls)

       - added removing storage extension elements <extLst> from sheets and workbooks (xlsx)


Version 3.1.0 (2010-11-16)
--------------------------------------------------
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 consumtion 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


Version 3.0.2 (2010-09-15)
--------------------------------------------------

       - improved writing performance for xlsx format

       - changed all "unsigned short" types to "int", 
         therefore now it's possible to write more than 65536 rows in xlsx format       


Version 3.0.1 (2010-08-25)
--------------------------------------------------

       - fixed bug with loading some xlsx files (unknown attribute error)


Version 3.0.0 (2010-08-24)
--------------------------------------------------

       - 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()


Version 2.4.3 (2010-06-07)
--------------------------------------------------

       - 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


Version 2.4.2 (2010-05-12)
--------------------------------------------------
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


Version 2.4.1 (2010-03-01)
--------------------------------------------------

       - removed memory leaks

       - small fixes


Version 2.4.0 (2010-02-25)
--------------------------------------------------
Improvements:

       - formula support

       - ability to change a default font

New methods:

       - Sheet::readFormula()

       - Sheet::writeFormula()

       - Sheet::isFormula()

       - Book::defaultFont()

       - Book::setDefaultFont()

       
Version 2.3.2 (2010-02-01)
--------------------------------------------------

       - fixed bug with saving some xls files

       - fixed bug in margin methods                      


Version 2.3.1 (2010-01-20)
--------------------------------------------------

       - fixed bug with Book::loadRaw() on Linux and Mac

       - changed behavior Book::saveRaw(): now LibXL writes raw data to internal memory buffer


Version 2.3.0 (2010-01-14)
--------------------------------------------------
Improvements:

       - loading/saving a book 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:

       - fixed bug with opening xls in Numbers (iWork on MacOSX)

       - 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 now


Version 2.2.2 (2009-10-13)
--------------------------------------------------
Improvements:

       - inserting/removing rows/columns

       - removing merges

New methods:

       - Sheet::insertCol()

       - Sheet::insertRow()

       - Sheet::removeCol()

       - Sheet::removeRow()

       - Sheet::delMerge()


Version 2.2.1
--------------------------------------------------
      
       - new method Sheet::isDate() for fast detecting any date/time values

       - fixed Sheet::split()

       - removed GLIBCXX_3.4.9 dependency in Linux package


Version 2.2.0
--------------------------------------------------
Improvements:
       
       - support comments

       - sheet splitting  

       - grouping and outline                      

       - clear areas in sheets

       - extracting dimensions of sheets

New methods:

       - Sheet::readComment()

       - Sheet::writeComment()

       - Sheet::split()

       - Sheet::split2()

       - Sheet::groupRows()

       - Sheet::groupCols()

       - Sheet::clear()

       - Sheet::firstRow()

       - Sheet::lastRow()

       - Sheet::firstCol()

       - Sheet::lastCol()

Bug fixes:
       
       - fixed warning when file is opened in Excel 2007 

       - opens xls with external links without errors

       - fixed some minor bugs


Version 2.1.0
--------------------------------------------------
Improvements:
        
       - support pictures (png, jpg, wmf)     

       - page breaks support

       - read/write bool values

       - read/write blank cells

       - detecting cell's type

       - read cells with formula

       - get/set active sheet

       - get row height and column width

New methods:

       - Book::addPicture()

       - Book::activeSheet()

       - Book::setActiveSheet()       

       - Sheet::cellType()

       - Sheet::setPicture()

       - Sheet::readBool()

       - Sheet::writeBool()

       - Sheet::readError()

       - Sheet::colWidth()

       - Sheet::rowHeight()

       - Sheet::setHorPageBreak()       

       - Sheet::setVerPageBreak()

Bug fixes:      
     
       - opens xls with macros without errors       

       - opens xls with charts without errors

       - fixed some minor bugs


Version 2.0.0
--------------------------------------------------
New release with a completely new redesign

