All checksums have been double-checked against existing RMD160 and
SHA512 hashes
Unfetchable distfiles (fetched conditionally?):
./textproc/convertlit/distinfo clit18src.zip
Release 1.4.5
* Added Description/Alt Text and Decorative accessibility options for charts,
textboxes and buttons. These options were already available for images.
Release 1.4.3 - May 12 2021
---------------------------
* Added support for background images in worksheets. See
:func:`set_background` and :ref:`ex_background`.
Release 1.4.2 - May 7 2021
--------------------------
* Added support for GIF image files (and in Excel 365, animated GIF files).
Release 1.4.1 - May 6 2021
--------------------------
* Added support for dynamic arrays and new Excel 365 functions like UNIQUE and
FILTER. See :func:`write_dynamic_array_formula`,
:ref:`formula_dynamic_arrays` and :ref:`ex_dynamic_arrays`.
* Added constructor option "use_future_functions" to enable newer Excel
"future" functions in Formulas. See :ref:`formula_future`, and the
:func:`Workbook` constructor.
Release 1.3.8 - March 29 2021
-----------------------------
* Added accessibility options "description" and "decorative" to
:func:`insert_image`.
* Added fix for datetime.timedelta values that exceed the Excel 1900 leap day
(timedeltas greater than 59 days, in hours). This is a backward incompatible
change.
* Added the worksheet :func:`read_only_recommended` method to set the Excel
"Read-only Recommended" option that is available when saving a file.
* Fixed issue where temp files used in `constant_memory` mode weren't
closed/deleted if the workbook object was garbage collected.
* Fixed issue where pattern formats without colors where given a default black
fill color.
* Added option to set a chart crossing to 'min' as well as the existing 'max'
option. The 'min' option isn't available in the Excel interface but can be
enabled via VBA.
Release 1.3.7
* Fixed issue where custom chart data labels didn't inherit the position of
the data labels in the series.
* Added text alignment for textboxes. The existing options allowed the text
area to be aligned but didn't offer control over the text within that area.
* Added Python 3.9 to the test matrix.
Release 1.3.6:
* Added the worksheet :func:`unprotect_range()` method to allow ranges within
a protected worksheet to be unprotected.
* There are now over 1500 test cases in the test suite, including 900 tests
that compare the output from XlsxWriter, byte for byte, against test files
created in Excel. This is to ensure the maximum possible compatibility with
Excel.
Release 1.3.5:
* Fixed issue where relative url links in images didn't work.
* Added ``use_zip64`` as a constructor option.
* Added check, and warning, for worksheet tables with no data row.
Either with or without a header row.
* Add a warning when the string length in :func:`write_rich_string()` exceeds
Excel's limit.
Release 1.3.4:
* Replaced internal MD5 digest used to check for duplicate images with a SHA256
digest to avoid issues on operating systems such as Red Hat in FIPS mode
which don't support MD5 for security reasons.
Release 1.3.3
* Added :func:`ignore_errors()` worksheet method to to allow Excel worksheet
errors/warnings to be ignored in user defined ranges. See also
:ref:`ex_ignore_errors`.
* Added warning when closing a file more than once via :func:`close()` to help
avoid errors where a file is closed within a loop or at the wrong scope
level.
Release 1.3.2
* Added Border, Fill, Pattern and Gradient formatting to chart data labels and
chart custom data labels. See :ref:`chart_series_option_data_labels` and
:ref:`chart_series_option_custom_data_labels`.
Release 1.2.8:
* Fix for issue where duplicate images with hyperlinks weren't handled
correctly.
* Removed ``ReservedWorksheetName`` exception which was used with the reserved
worksheet name "History" since this name is allowed in some Excel variants.
* Fix for worksheet objects (charts, images and textboxes) that are inserted
with an offset that starts in a hidden cell.
* Fix to allow handling of NoneType in :func:`add_write_handler`.
Release 1.2.7:
* Fix for duplicate images being copied to an XlsxWriter file. Excel uses an
optimization where it only stores one copy of a repeated/duplicate image in
a workbook. XlsxWriter didn't do this which meant that the file size would
increase when then was a large number of repeated images. This release fixes
that issue and replicates Excel's behavior.
* Added documentation on :ref:`num_format_categories` and
:ref:`num_format_locale`.
* Added note to :func:`protect()` about how it is possible to encrypt an
XlsxWriter file using a third party, cross platform, open source tool called
`msoffice-crypt <https://github.com/herumi/msoffice>`_.
Release 1.2.5:
* Added option to add hyperlinks to textboxes.
Release 1.2.4:
* Added option to link textbox text from a cell.
* Added option to rotate text in a textbox.
Release 1.2.3:
* Increased allowable worksheet url length from 255 to 2079 characters, as
supported in more recent versions of Excel. A lower or user defined limit
can be set via the ``max_url_length`` property in the :func:`Workbook`
constructor.
* Fixed several issues with hyperlinks in worksheet images.
Release 1.2.1:
Added the add_write_handler() method to allow user defined types to be handled by the write() method. See Writing user defined types for more information.
Add support for East Asian vertical fonts in charts.
Release 1.2.0:
* Refactored exception handling around the workbook file :func:close()
method to allow exceptions to be caught and handled. See
:ref:ex_check_close. Also refactored the code to clean up temp files in
the event of an exception.
* Added the option to allow chart fonts to be rotated to 270 degrees
to give a stacked orientation. See :ref:chart_fonts.
Release 1.1.7:
* Added docs on :ref:object_position.
* Added fix for sizing of cell comment boxes when they cross columns/rows that
have size changes that occur after the comment is written.
* Added fix for the sizing of worksheet objects (images, charts, textboxes)
when the underlying cell sizes have changed and the "object_position"
parameter has been set to 1 "Move and size with cells". An additional mode 4
has been added to simulate inserting the object in hidden rows.
* Added object positioning for charts and textboxes, it was already supported
for images. Note, the parameter is now called object_position. The
previous parameter name positioning is deprecated but still supported
for images.
Release 1.1.6:
* Fixed issue where images that started in hidden rows/columns weren't placed
correctly in the worksheet.
* Fixed the mime-type reported by system file(1). The mime-type reported
by "file --mime-type"/magic was incorrect for XlsxWriter files since it
expected the [Content_types] to be the first file in the zip container.
Release 1.1.5:
* This version removes support for end of life Pythons 2.5, 2.6, 3.1, 3.2 and
3.3. For older, unsupported versions of Python use version 1.1.4 of
XlsxWriter.
Release 1.1.4:
* Fix for issues where zipfile.py raises "ZIP does not support timestamps
before 1980" exception.
Release 1.1.3:
* Fix handling of 'num_format': '0' in duplicate formats.
1.1.2:
* Fix for issue where in_memory files weren't compressed.
* Fix write() so that it handles array formulas as documented.
* Fix for issue with special characters in worksheet table functions.
* Added warnings for input issues in :func:write_rich_string() such as blank
strings, double formats or insufficient parameters.
Release 1.1.0:
* Added functionality to align chart category axis labels. See the
label_align property of the :func:set_x_axis() method.
* Added worksheet :func:hide_row_col_headers() method to turn off worksheet
row and column headings.
* Added the :func:set_tab_ratio() method to set the ratio between the
worksheet tabs and the horizontal slider.
* Fixed issue with icon conditional formats when the values were zero.
Release 1.0.8:
Added named exceptions to XlsxWriter. See The Exceptions Class.
Removed the implicit close() in the destructor since it wasn’t guaranteed to work correctly and raised a confusing exception when any other exception was triggered. Note that this is a backward incompatible change. The with context manager is a better way to close automatically, see close().
Added border, fill, pattern and gradient formatting options to set_legend().
Added top_right position to set_legend().
- Added example of how to subclass the Workbook and Worksheet objects.
- Added support for WMF and EMF image formats to the Worksheet
:func:`add_image` method.
- Set the xlsx internal file member datetimes to 1980-01-01 00:00:00
like Excel so that apps can produce a consistent binary file once
the workbook :func:`set_properties` ``created`` date is set.
- Fix for jpeg images that reported unknown height/width due to
unusual SOF markers.
- Added support for blanks in list autofilter.
- Added Excel 2010 data bar features such as solid fills and control over the
display of negative values. See :ref:`working_with_conditional_formats` and
:ref:`ex_cond_format`.
- Fixed :func:`set_column` parameter names to match docs and other methods.
Note, this is a backward incompatible change.
- Fixed missing plotarea formatting in pie/doughnut charts.
Release 0.9.8 - July 1 2017
- Fixed issue where spurious deprecation warning was raised in ``-Werror`` mode.
Release 0.9.7 - June 25 2017
- Minor bug and doc fixes.
Release 0.9.6 - Dec 26 2016
---------------------------
* Fix for table with data but without a header.
* Add a warning when the number of series in a chart exceeds Excel's limit
of 255.
Release 0.9.5 - Dec 24 2016
---------------------------
* Fix for missing `remove_timezone` option in Chart class.
Release 0.9.4 - Dec 2 2016
--------------------------
* Added user definable removal of timezones in datetimes. See the
:func:`Workbook` constructor option ``remove_timezone`` and :ref:`Timezone
Handling in XlsxWriter <timezone_handling>`.
* Fix duplicate header warning in :func:`add_table` when there is only one
user defined header.
* Fix for `center_across` property in :func:`add_format`.
Release 0.9.2 - June 13 2016
---------------------------
* Added workbook :func:`set_size` method to set the workbook
window size.
Release 0.9.1 - June 8 2016
---------------------------
* Added font support to chart :func:`set_table`.
* Documented used of font rotation in chart :ref:`data labels
<chart_series_option_data_labels>`.
Release 0.9.0 - June 7 2016
---------------------------
* Added :ref:`trendline properties
<chart_series_option_trendline>`:
``intercept``, ``display_equation`` and ``display_r_squared``.
Release 0.8.9 - June 1 2016
---------------------------
* Fix for :func:`insert_image` issue when handling images with
zero dpi.
Release 0.8.8 - May 31 2016
---------------------------
* Added workbook :func:`set_custom_property` method to set custom
document properties.
* Fix for issue when inserting read-only images on Windows.
* Added :func:`get_worksheet_by_name()` method to allow the
retrieval of a worksheet from a workbook via its name.
* Fixed issue where internal file creation and modification dates
where in the local timezone instead of UTC.