Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update xlsxwriter to 3.2.0 #2919

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

This PR updates XlsxWriter from 1.1.0 to 3.2.0.

Changelog

3.2.0

--------------------------------

This is the 10th anniversary release of XlsxWriter. Version 0.0.1 was released
on February 17 2013. Since they there have been 167 releases, 25,000 lines of
code, 1600 test cases, 700 pages of documentation, 71,000 users on GitHub, 50
contributors, 1000 closed issues and 150 million yearly downloads. Thanks to
everyone who has contributed code, given feedback or just used the library.

* Add :func:`embed_image()` worksheet method to embed images in cells. This is
equivalent to Excel's menu item to insert an image using the option to "Place
in Cell". It scales images automatically to the dimensions of the cell.

This has been a frequently requested feature for people creating spreadsheets
with images for product items. See also :ref:`ex_embedded_images`.

* Fix issue where a horizontal alignment format was ignored if indentation was
also set.

:issue:`1041`.

3.1.9

-------------------------------

* Add fix for errant XML tag in chart leader lines for non-Pie charts.

:issue:`1019` and :feature:`1012`.

3.1.8

-------------------------------

* Add support for formatting the data label in chart trendlines.

:feature:`750`.

3.1.7

------------------------------

* Add the :func:`very_hidden()` method to hide a worksheet. This is similar to
the :func:`hide()` method except that the worksheet cannot be unhidden in the
the Excel user interface. The Excel worksheet "xlSheetVeryHidden" option can
only be unset programmatically via VBA.

:feature:`947`.

* Added fixes for column formulas in tables that were overridden by table data
and which also didn't take future functions into account.

:issue:`1015`.

3.1.6

------------------------------

* Added support for chart leader lines for chart types other than Pie and Doughnut.

:feature:`1012`.

3.1.5

---------------------------------

* Added support for adding signed VBA macros to workbooks via the
:func:`add_signed_vba_project` method. See `Working with VBA Macros`_.

:feature:`1009`.

.. _Working with VBA Macros: https://xlsxwriter.readthedocs.io/working_with_macros.html

3.1.4

---------------------------------

* Added support for enabling the Excel "Show N/A as an empty cell" chart option
via the :func:`show_na_as_empty_cell` method.

:feature:`1008`.

3.1.3

--------------------------------

* Added support for custom total formulas to worksheet tables.

:feature:`982`.

3.1.2

---------------------------

* Added worksheet page break preview mode via :func:`set_pagebreak_view()`.

3.1.1

---------------------------

* Add support for new Excel dynamic functions added in 2023.

:issue:`984`.

* Added support for adding a color to the `invert_if_negative` chart option.

:feature:`854`.

3.1.0

-----------------------------

* Minor fix for cell color issue.

3.0.9

-----------------------------

* Add documentation and examples on :ref:`ewx_polars` to demonstrate new `Polars
<https://www.pola.rs>`_ integration of XlsxWriter in `write_excel()`_.

.. _write_excel(): https://pola-rs.github.io/polars/py-polars/html/reference/api/polars.DataFrame.write_excel.html#polars.DataFrame.write_excel

* Add fix for rare issue with duplicate number formats.

3.0.8

-------------------------------

* Fix for ``autofit()`` exception when user defined column width was ``None``.

3.0.7

-------------------------------

* Improved :func:`autofit` algorithm to account for the additional width of
autofilter and table dropdowns.

* Improved :func:`autofit` take user defined column widths into account.

Autofit will now only update the width for an existing column if it is greater
than the user defined value. This allows the user to pre-load a minimum column
width.

:feature:`936`.

3.0.6

------------------------------

* Added simulated worksheet :func:`autofit` method.

:feature:`936`.

3.0.5

------------------------------

* Added ``OverlappingRange`` exception which is raised during Worksheet
:func:`add_table()` or :func:`merge_range()` if the range overlaps an existing
worksheet table or merge range. This is a file corruption error in Excel. See
:ref:`exceptions`.

:issue:`848`

3.0.4

--------------------------------

* Roll up release of several minor fixes.

* Drop support for EOL Python 3.4 and 3.5.

3.0.3

--------------------------------

* Added :func:`print_black_and_white` worksheet method to set "Black and
White" print options.

:feature:`862`.

3.0.2

-------------------------------

* Added :func:`set_top_left_cell` worksheet method to position the first
visible cell in a worksheet.

:feature:`837`.

3.0.1

------------------------------

* Add python_requires version to setup.py to help pip find the correct
matching version for Python 2 and 3.

3.0.0

------------------------------

* This is the first Python 3 only version of XlsxWriter. It is approximately
10-15% faster than the Python2/3 version.

Python 2 users should use XlsxWriter version 2.0.0, see below.

2.0.0

-----------------------------

* This is the last XlsxWriter release to support Python 2. From now bug fixes
and new features will only be available for Python 3. The deprecation notice
for Python 2 support in XlsxWriter has been in place since May 2020 and the
Python community support for Python 2 ended in January 2020. Downloads of
XlsxWriter for Python 2 is currently less than 6% of all downloads of the
library, and decreasing month by month.

Python 2 users should still be able to install versions of XlsxWriter up to
this release but not any releases afterwards.

:feature:`720`.

1.4.5

----------------------------

* Added Description/Alt Text and Decorative accessibility options for charts,
textboxes and buttons. These options were already available for images.

1.4.4

---------------------------

* Added some performance improvements. Performance for larger files should be
5-10% better.

1.4.3

---------------------------

* Added support for background images in worksheets. See
:func:`set_background` and :ref:`ex_background`.

1.4.2

--------------------------

* Added support for GIF image files (and in Excel 365, animated GIF files).

1.4.1

--------------------------

* 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.

1.4.0

-----------------------------

* Added fix for issue for where a y_axis font rotation of 0 was ignored.

1.3.9

-----------------------------

* Added option to set row heights and column widths in pixels via the
:func:`set_row_pixels` and :func:`set_column_pixels` methods.

1.3.8

-----------------------------

* Added ability to add accessibility options "description" and "decorative" to
images via :func:`insert_image`. :feature:`768`.

* 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. :issue:`731`.

* Added the worksheet :func:`read_only_recommended` method to set the Excel
"Read-only Recommended" option that is available when saving a file.
:feature:`784`.

* Fixed issue where temp files used in `constant_memory` mode weren't
closed/deleted if the workbook object was garbage collected. :issue:`764`.

* Fixed issue where pattern formats without colors were given a default black
fill color. :issue:`790`.

* 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. :feature:`773`.

1.3.7

-------------------------------

* Fixed issue where custom chart data labels didn't inherit the position of
the data labels in the series. :issue:`754`.

* 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.

1.3.6

---------------------------------

* Added the worksheet :func:`unprotect_range()` method to allow ranges within
a protected worksheet to be unprotected. :feature:`507`.

* 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.

1.3.5

---------------------------------

* Fixed issue where relative url links in images didn't work. :issue:`751`.

* Added ``use_zip64`` as a constructor option. :issue:`745`.


* Added check, and warning, for worksheet tables with no data row. Either
with or without a header row. :issue:`715` and :issue:`679`.

* Add a warning when the string length in :func:`write_rich_string()` exceeds
Excel's limit. :issue:`372`.

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. :issue:`749`.

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`. :feature:`678`.

* 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.

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`.

1.3.1

-----------------------------

* Fix for issue where array formulas weren't included in the output file for
certain ranges/conditions. :issue:`735`.

1.3.0

----------------------------

* Added support for chart :ref:`custom data labels
<chart_series_option_custom_data_labels>`. :feature:`343`.

1.2.9

---------------------------

* Added support for ``stacked`` and ``percent_stacked`` Line charts.

1.2.8

--------------------------------

* Fix for issue where duplicate images with hyperlinks weren't handled
correctly. :issue:`686`.

* Removed ``ReservedWorksheetName`` exception which was used with the reserved
worksheet name "History" since this name is allowed in some Excel variants.
:issue:`688`.

* Fix for worksheet objects (charts, images and textboxes) that are inserted
with an offset that starts in a hidden cell. :issue:`676`.

* Fix to allow handling of NoneType in :func:`add_write_handler`.
:issue:`677`.

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. :issue:`615`.

* 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>`_.

1.2.6

--------------------------------

* Added option to remove style from worksheet tables. :feature:`670`.

1.2.5

--------------------------------

* Added option to add hyperlinks to textboxes. See :ref:`textbox_hyperlink`.
:feature:`419`.

1.2.4

-------------------------------

* Added option to link textbox text from a cell. See :ref:`textbox_textlink`.
:feature:`516`.

* Added option to rotate text in a textbox. See
:ref:`textbox_formatting_rotation`. :feature:`638`.

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.

1.2.2

-------------------------------

* Fixed Python 3.8.0 warnings. :issue:`660`.

1.2.1

---------------------------------

* Added the :func:`add_write_handler` method to allow user defined types to be
handled by the :func:`write` method. See :ref:`writing_user_types` for more
information. :feature:`631`.

* Add support for East Asian vertical fonts in charts. :feature:`648`.

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. :issue`471` and :issue:`647`.

* Added the option to allow chart fonts to be rotated to 270 degrees to give a
stacked orientation. See :ref:`chart_fonts`. :issue:`648`.

1.1.9

------------------------------

* Another fix for issues where zipfile.py raises "ZIP does not support
timestamps before 1980" exception. :issue:`651`.

1.1.8

--------------------------

* Added ability to combine Doughnut and Pie charts.

* Added gauge chart example which is a combination of a Doughnut and a Pie
chart. See :ref:`ex_chart_gauge`.

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. :issue:`403` and
:issue:`312`.

* 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.
:issue:`618`.

* 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. :issue:`568`.

1.1.6

----------------------------

* Fixed issue where images that started in hidden rows/columns weren't placed
correctly in the worksheet. :issue:`613`.

* 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.
:issue:`614`.

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.

1.1.4

--------------------------------

* Fix for issues where zipfile.py raises "ZIP does not support timestamps
before 1980" exception. :issue:`535`.

1.1.3

-------------------------------

* Fix handling of ``'num_format': '0'`` in duplicate formats. :issue:`584`.

1.1.2

-------------------------------

* Fix for issue where ``in_memory`` files weren't compressed. :issue:`573`.

* Fix ``write()`` so that it handles array formulas as documented.
:issue:`418`.

* Fix for issue with special characters in worksheet table functions.
:issue:`442`.

* Added warnings for input issues in :func:`write_rich_string()` such as blank
strings, double formats or insufficient parameters. :issue:`425`.

1.1.1

---------------------------------

* Added comment font name and size options. :issue:`201`.

* Fix for issue when using text boxes in the same workbook as a chartsheet.
:issue:`420`.
Links

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant