1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-XlsxWriter

Клонировать/Скачать
Changes 48 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 26.06.2025 19:23 c800e3c
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770
Release 3.2.5 - June 17 2025
----------------------------
* Fixed issue where a test function was made public incorrectly which caused
warnings about a missing ``xlsxwriter.test`` module.
:issue:`1138`.
Release 3.2.4 - June 17 2025
----------------------------
* Added support for a :ref:`Color() <Color>` type. This is backwards compatible
with existing Html and named color string types but also adds support for
theme colors. See also :ref:`colors`.
* Fixed issue where ``write_url()`` dropped implicit support for generic URL
types due to the refactoring into a ``Url`` type in the previous release.
:issue:`1129`.
* Fixed issue where ``max_url_length`` parameter wasn't honored.
:issue:`1130`.
Release 3.2.3 - April 17 2025
-----------------------------
* Fix for a breaking change in v3.2.1.
The Format class contained methods called ``set_font()``, ``set_size()`` and
``set_color()`` which were old internal testing alternatives for
``set_font_name()``, ``set_font_size()`` and ``set_font_color()``. Since they
were intentionally internal methods they were removed as part of a general
refactoring in v3.2.1. However, the alternative method names had leaked out
into production code and the removal caused breaks in dependent code. These
methods have been reinstated to prevent inadvertent breakages but may be
removed in the future after an orderly deprecation. Users should update to the
documented method names.
* This release drops support for Python 3.6 and 3.7, which are both EOL, in
order to simplify the additions of type annotations. The minimum supported
version of Python is now Python 3.8.
* This release contains code with initial type annotations as part of an overall
effort to add type annotations to the entire code base. It also contains
internal refactoring of some pseudo-types, based on dicts, into actual enum or
class types to allow stronger type checking. These will be rolled out in
upcoming releases.
This is part of a modernization of the XlsxWriter code base, see "XlsxWriter
Roadmap v2" :feature:`1128`.
* As part of the type annotation refactoring support was added for an explicit
``Url`` type in addition to the implicit string URLs used in previous
versions. This isn't documented in this release.
Release 3.2.2 - January 28 2025
-------------------------------
* Added support for checkboxes via the :func:`insert_checkbox()` method.
Checkboxes are a new feature added to `Excel in 2024`_. They are a way of
displaying a boolean value as a checkbox in a cell. The underlying value is
still an Excel ``TRUE/FALSE`` boolean value and can be used in formulas and in
references.
.. image:: _images/checkbox.png
See :ref:`ex_checkbox`.
.. _Excel in 2024: https://techcommunity.microsoft.com/blog/excelblog/introducing-checkboxes-in-excel/4173561
Release 3.2.1 - January 22 2025
--------------------------------
Added improvements to ``autofit()``.
* Added the optional ``max_width`` parameter to the :func:`autofit()` method to
work around the issue where the autofit width is too big.
Excel autofits very long strings up to limit of 1790 pixels/255 characters.
This is often too wide to display on a single screen at normal zoom. As such
the ``max_width`` parameter is provided to enable a smaller upper pixel limit
for autofitting long strings. See :func:`autofit()`.
:feature:`1106`.
* Added the :func:`cell_autofit_width` utility function to allow users to
calculate the auto-fit width for a cell value. This allows the user to
implement their own auto-fit logic. See :ref:`ex_autofit_manually`.
Release 3.2.0 - February 17 2024
--------------------------------
This is the 10th anniversary release of XlsxWriter. Version 0.0.1 was released
on February 17 2013. Since then 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`.
.. image:: _images/embedded_images.png
* Fix issue where a horizontal alignment format was ignored if indentation was
also set.
:issue:`1041`.
Release 3.1.9 - October 19 2023
-------------------------------
* Add fix for errant XML tag in chart leader lines for non-Pie charts.
:issue:`1019` and :feature:`1012`.
Release 3.1.8 - October 15 2023
-------------------------------
* Add support for formatting the data label in chart trendlines.
:feature:`750`.
Release 3.1.7 - October 9 2023
------------------------------
* 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`.
Release 3.1.6 - October 1 2023
------------------------------
* Added support for chart leader lines for chart types other than Pie and Doughnut.
:feature:`1012`.
Release 3.1.5 - September 24 2023
---------------------------------
* 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
Release 3.1.4 - September 18 2023
---------------------------------
* 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`.
Release 3.1.3 - September 8 2023
--------------------------------
* Added support for custom total formulas to worksheet tables.
:feature:`982`.
Release 3.1.2 - May 28 2023
---------------------------
* Added worksheet page break preview mode via :func:`set_pagebreak_view()`.
Release 3.1.1 - May 21 2023
---------------------------
* 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`.
Release 3.1.0 - April 13 2023
-----------------------------
* Minor fix for cell color issue.
Release 3.0.9 - March 10 2023
-----------------------------
* Add documentation and examples on :ref:`ewx_polars` to demonstrate new `Polars
<https://pola.rs/>`_ integration of XlsxWriter in `write_excel()`_.
.. _write_excel(): https://docs.pola.rs/py-polars/html/reference/api/polars.DataFrame.write_excel.html
* Add fix for rare issue with duplicate number formats.
Release 3.0.8 - February 3 2023
-------------------------------
* Fix for ``autofit()`` exception when user defined column width was ``None``.
Release 3.0.7 - January 14 2023
-------------------------------
* 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`.
Release 3.0.6 - January 5 2023
------------------------------
* Added simulated worksheet :func:`autofit` method.
:feature:`936`.
Release 3.0.5 - January 1 2023
------------------------------
* 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`
Release 3.0.4 - December 28 2022
--------------------------------
* Roll up release of several minor fixes.
* Drop support for EOL Python 3.4 and 3.5.
Release 3.0.3 - February 27 2022
--------------------------------
* Added :func:`print_black_and_white` worksheet method to set "Black and
White" print options.
:feature:`862`.
Release 3.0.2 - October 31 2021
-------------------------------
* Added :func:`set_top_left_cell` worksheet method to position the first
visible cell in a worksheet.
:feature:`837`.
Release 3.0.1 - August 10 2021
------------------------------
* Add python_requires version to setup.py to help pip find the correct
matching version for Python 2 and 3.
Release 3.0.0 - August 10 2021
------------------------------
* 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.
Release 2.0.0 - August 9 2021
-----------------------------
* 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`.
Release 1.4.5 - July 29 2021
----------------------------
* Added Description/Alt Text and Decorative accessibility options for charts,
textboxes and buttons. These options were already available for images.
Release 1.4.4 - July 4 2021
---------------------------
* Added some performance improvements. Performance for larger files should be
5-10% better.
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.4.0 - April 23 2021
-----------------------------
* Added fix for issue for where a y_axis font rotation of 0 was ignored.
Release 1.3.9 - April 15 2021
-----------------------------
* Added option to set row heights and column widths in pixels via the
:func:`set_row_pixels` and :func:`set_column_pixels` methods.
Release 1.3.8 - March 29 2021
-----------------------------
* 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`.
Release 1.3.7 - October 13 2020
-------------------------------
* 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.
Release 1.3.6 - September 23 2020
---------------------------------
* 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.
Release 1.3.5 - September 21 2020
---------------------------------
* 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`.
Release 1.3.4 - September 16 2020
---------------------------------
* 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`.
Release 1.3.3 - August 13 2020
------------------------------
* 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.
Release 1.3.2 - August 6 2020
-----------------------------
* 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.3.1 - August 3 2020
-----------------------------
* Fix for issue where array formulas weren't included in the output file for
certain ranges/conditions. :issue:`735`.
Release 1.3.0 - July 30 2020
----------------------------
* Added support for chart :ref:`custom data labels
<chart_series_option_custom_data_labels>`. :feature:`343`.
Release 1.2.9 - May 29 2020
---------------------------
* Added support for ``stacked`` and ``percent_stacked`` Line charts.
Release 1.2.8 - February 22 2020
--------------------------------
* 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`.
Release 1.2.7 - December 23 2019
--------------------------------
* 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>`_.
Release 1.2.6 - November 15 2019
--------------------------------
* Added option to remove style from worksheet tables. :feature:`670`.
Release 1.2.5 - November 10 2019
--------------------------------
* Added option to add hyperlinks to textboxes. See :ref:`textbox_hyperlink`.
:feature:`419`.
Release 1.2.4 - November 9 2019
-------------------------------
* 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`.
Release 1.2.3 - November 7 2019
-------------------------------
* 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.2 - October 16 2019
-------------------------------
* Fixed Python 3.8.0 warnings. :issue:`660`.
Release 1.2.1 - September 14 2019
---------------------------------
* 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`.
Release 1.2.0 - August 26 2019
------------------------------
* 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`.
Release 1.1.9 - August 19 2019
------------------------------
* Another fix for issues where zipfile.py raises "ZIP does not support
timestamps before 1980" exception. :issue:`651`.
Release 1.1.8 - May 5 2019
--------------------------
* 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`.
Release 1.1.7 - April 20 2019
-----------------------------
* 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`.
Release 1.1.6 - April 7 2019
----------------------------
* 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`.
Release 1.1.5 - February 22 2019
--------------------------------
* 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 - February 10 2019
--------------------------------
* Fix for issues where zipfile.py raises "ZIP does not support timestamps
before 1980" exception. :issue:`535`.
Release 1.1.3 - February 9 2019
-------------------------------
* Fix handling of ``'num_format': '0'`` in duplicate formats. :issue:`584`.
Release 1.1.2 - October 20 2018
-------------------------------
* 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`.
Release 1.1.1 - September 22 2018
---------------------------------
* 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`.
Release 1.1.0 - September 2 2018
--------------------------------
* 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. :issue:`480`.
* Added the :func:`set_tab_ratio()` method to set the ratio between the
worksheet tabs and the horizontal slider. :issue:`481`.
* Fixed issue with icon conditional formats when the values were zero.
:issue:`565`.
Release 1.0.9 - August 27 2018
------------------------------
* Fix for issue with formulas quoted as strings in conditional formats,
introduced in version 1.0.7. :issue:`564`.
Release 1.0.8 - August 27 2018
------------------------------
* Added named exceptions to XlsxWriter. See :ref:`exceptions`.
* Removed the implicit :func:`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 :func:`close()`.
* Added border, fill, pattern and gradient formatting options to
:func:`set_legend()`. :issue:`545`.
* Added ``top_right`` position to :func:`set_legend()`. :issue:`537`.
Release 1.0.7 - August 16 2018
------------------------------
* Fix for unicode type error in Python 3. :issue:`554`.
Release 1.0.6 - August 15 2018
------------------------------
* Added some performance improvements. :pull:`551`.
Release 1.0.5 - May 19 2018
---------------------------
* Added example of how to subclass the Workbook and Worksheet objects. See
:ref:`ex_inheritance1` and :ref:`ex_inheritance2`.
* Added support for WMF and EMF image formats to the Worksheet
:func:`add_image` method.
Release 1.0.4 - April 14 2018
-----------------------------
* 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. :pull:`495`.
* Fix for jpeg images that reported unknown height/width due to unusual SOF
markers. :issue:`506`.
* Added support for blanks in list autofilter. :issue:`505`.
Release 1.0.3 - April 10 2018
-----------------------------
* 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`. :feature:`502`.
* Fixed :func:`set_column` parameter names to match docs and other methods.
Note, this is a backward incompatible change. :issue:`504`.
* Fixed missing plotarea formatting in pie/doughnut charts.
Release 1.0.2 - October 14 2017
-------------------------------
* Fix for cases where the hyperlink style added in the previous release didn't
work. :feature:`455`.
Release 1.0.1 - October 14 2017
-------------------------------
* Changed default :func:`write_url` format to the Excel hyperlink style so
that it changes when the theme is changed and also so that it indicates that
the link has been clicked. :feature:`455`.
Release 1.0.0 - September 16 2017
---------------------------------
* Added icon sets to conditional formatting. See
:ref:`working_with_conditional_formats` and :ref:`ex_cond_format`.
:feature:`387`.
Release 0.9.9 - September 5 2017
--------------------------------
* Added ``stop_if_true`` parameter to conditional formatting. :feature:`386`.
Release 0.9.8 - July 1 2017
---------------------------
* Fixed issue where spurious deprecation warning was raised in ``-Werror``
mode. :issue:`451`.
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. :issue:`405`.
* Add a warning when the number of series in a chart exceeds Excel's limit of
1. :issue:`399`.
Release 0.9.5 - Dec 24 2016
---------------------------
* Fix for missing `remove_timezone` option in Chart class. :pull:`404` from
Thomas Arnhold.
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>`. :issue:`257`.
* Fix duplicate header warning in :func:`add_table` when there is only one
user defined header. :issue:`380`.
* Fix for `center_across` property in :func:`add_format`. :issue:`381`.
Release 0.9.3 - July 8 2016
---------------------------
* Added check to :func:`add_table` to prevent duplicate header names which
leads to a corrupt Excel file. :issue:`362`.
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>`. :issue:`337`.
Release 0.9.0 - June 7 2016
---------------------------
* Added :ref:`trendline properties <chart_series_option_trendline>`:
``intercept``, ``display_equation`` and ``display_r_squared``.
:feature:`357`.
Release 0.8.9 - June 1 2016
---------------------------
* Fix for :func:`insert_image` issue when handling images with zero dpi.
:issue:`356`.
Release 0.8.8 - May 31 2016
---------------------------
* Added workbook :func:`set_custom_property` method to set custom document
properties. :feature:`355`.
Release 0.8.7 - May 13 2016
---------------------------
* Fix for issue when inserting read-only images on Windows.
:issue:`352`.
* 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 were in the
local timezone instead of UTC.
Release 0.8.6 - April 27 2016
-----------------------------
* Fix for ``external:`` urls where the target/anchor contains spaces.
:issue:`350`.
Release 0.8.5 - April 17 2016
-----------------------------
* Added additional documentation on :ref:`ewx_pandas` and
:ref:`pandas_examples`.
* Added fix for :func:`set_center_across` format method.
Release 0.8.4 - January 16 2016
-------------------------------
* Fix for :func:`write_url` exception when the URL contains two ``#``
location/anchors. Note, URLs like this aren't strictly valid and cannot be
entered manually in Excel.
:issue:`330`.
Release 0.8.3 - January 14 2016
-------------------------------
* Added options to configure chart axis tick placement. See :func:`set_x_axis()`.
Release 0.8.2 - January 13 2016
-------------------------------
* Added transparency option to solid fill colors in chart areas
(:ref:`chart_formatting_fill`).
:feature:`298`.
Release 0.8.1 - January 12 2016
-------------------------------
* Added option to set chart tick interval.
:feature:`251`.
Release 0.8.0 - January 10 2016
-------------------------------
* Added additional documentation on :ref:`working_with_formulas`.
Release 0.7.9 - January 9 2016
------------------------------
* Added chart pattern fills, see :ref:`chart_formatting_pattern` and
:ref:`ex_chart_pattern`.
:feature:`268`.
Release 0.7.8 - January 6 2016
------------------------------
* Add checks for valid and non-duplicate worksheet table names.
:issue:`319`.
Release 0.7.7 - October 19 2015
-------------------------------
* Added support for table header formatting and a fix for wrapped lines in the
header.
:feature:`287`.
Release 0.7.6 - October 7 2015
------------------------------
* Fix for images with negative offsets.
:issue:`273`.
Release 0.7.5 - October 4 2015
------------------------------
* Allow hyperlinks longer than 255 characters when the link and anchor are
each less than or equal to 255 characters.
* Added ``hyperlink_base`` document property.
:feature:`306`.
Release 0.7.4 - September 29 2015
---------------------------------
* Added option to allow data validation input messages with the 'any' validate
parameter.
* Fixed url encoding of links to external files and directories.
:issue:`278`.
Release 0.7.3 - May 7 2015
--------------------------
* Added documentation on :ref:`ewx_pandas` and :ref:`pandas_examples`.
* Added support for ``with`` context manager.
:PR`239`.
Release 0.7.2 - March 29 2015
-----------------------------
* Added support for textboxes in worksheets. See :func:`insert_textbox()` and
:ref:`working_with_textboxes` for more details.
:feature:`107`.
Release 0.7.1 - March 23 2015
-----------------------------
* Added gradient fills to chart objects such as the plot area of columns. See
:ref:`chart_formatting_gradient` and :ref:`ex_chart_gradient`.
:feature:`228`.
Release 0.7.0 - March 21 2015
-----------------------------
* Added support for display units in chart axes. See :func:`set_x_axis()`.
:feature:`185`.
* Added ``nan_inf_to_errors`` :func:`Workbook` constructor option to allow
mapping of Python `nan/inf` value to Excel error formulas in ``write()`` and
``write_number()``.
:feature:`150`.
Release 0.6.9 - March 19 2015
-----------------------------
* Added support for clustered category charts. See :ref:`ex_chart_clustered`
for details.
:feature:`180`.
* Refactored the :ref:`format` and formatting documentation.
Release 0.6.8 - March 17 2015
-----------------------------
* Added option to combine two different chart types. See the
:ref:`chart_combined_charts` section and :ref:`ex_chart_combined` and
:ref:`ex_chart_pareto` for more details.
:feature:`72`.
Release 0.6.7 - March 1 2015
----------------------------
* Added option to add function value in worksheet :func:`add_table`.
:feature:`216`.
* Fix for A1 row/col numbers below lower bound.
:issue:`212`.
Release 0.6.6 - January 16 2015
-------------------------------
* Fix for incorrect shebang line in `vba_extract.py` packaged in wheel.
:issue:`211`.
* Added docs and example for diagonal cell border.
See :ref:`ex_diagonal_border`.
Release 0.6.5 - December 31 2014
--------------------------------
* Added worksheet quoting for chart names in lists.
:issue:`205`.
* Added docs on how to find and set VBA codenames.
:issue:`202`.
* Fix Python3 issue with unused charts.
:issue:`200`.
* Enabled warning for missing category is scatter chart.
:issue:`197`.
* Fix for upper chart style limit. Increased the chart style limit from
42 to the correct 48.
:issue:`192`.
* Raise warning if a chart is inserted more than once.
:issue:`184`.
Release 0.6.4 - November 15 2014
--------------------------------
* Fix for issue where fonts applied to data labels raised exception.
:issue:`179`.
* Added option to allow explicit text axis types for charts, similar to date
axes.
:feature:`178`.
* Fix for issue where the bar/column chart gap and overlap weren't
applied to the secondary axis.
:issue:`177`.
Release 0.6.3 - November 6 2014
-------------------------------
* Added support for adding VBA macros to workbooks. See :ref:`macros`.
:feature:`126`.
Release 0.6.2 - November 1 2014
-------------------------------
* Added chart axis line and fill properties.
:feature:`88`.
Release 0.6.1 - October 29 2014
-------------------------------
* Added chart specific handling of data label positions since not all positions
are available for all chart types.
:issue:`170`.
* Added number formatting
(:issue:`130`),
font handling, separator and legend key for data labels.
See :ref:`chart_series_option_data_labels`
* Fix for non-quoted worksheet names containing spaces and non-alphanumeric
characters.
:issue:`167`.
Release 0.6.0 - October 15 2014
-------------------------------
* Added option to add images to headers and footers. See
:ref:`ex_headers_footers`.
:feature:`133`.
* Fixed issue where non 96dpi images weren't scaled properly in Excel.
:issue:`164`.
* Added option to not scale header/footer with page. See :func:`set_header`.
:feature:`134`.
Release 0.5.9 - October 11 2014
-------------------------------
* Removed ``egg_base`` requirement from ``setup.cfg`` which was preventing
installation on Windows.
:issue:`162`.
* Fix for issue where X axis title formula was overwritten by the Y axis
title.
:issue:`161`.
Release 0.5.8 - September 28 2014
---------------------------------
* Added support for Doughnut charts.
:feature:`157`.
* Added support for wheel packages.
:feature:`156`.
* Made the exception handling in ``write()`` clearer for unsupported types so
that it raises a more accurate TypeError instead of a ValueError.
:issue:`153`.
Release 0.5.7 - August 13 2014
------------------------------
* Added support for :func:`insert_image` images from byte streams to allow
images from URLs and other sources.
:feature:`118`.
* Added :func:`write_datetime` support for datetime.timedelta.
:feature:`128`.
Release 0.5.6 - July 22 2014
----------------------------
* Fix for spurious exception message when :func:`close()` isn't used.
:issue:`131`.
* Fix for formula string values that look like numbers.
:issue:`122`.
* Clarify :func:`print_area()` documentation for complete row/column ranges.
:issue:`139`.
* Fix for unicode strings in data validation lists.
:issue:`135`.
Release 0.5.5 - May 6 2014
--------------------------
* Fix for incorrect chart offsets in :func:`insert_chart()` and
:func:`set_size()`.
Release 0.5.4 - May 4 2014
--------------------------
* Added image positioning option to :func:`insert_image` to control how
images are moved in relation to surrounding cells.
:feature:`117`.
* Fix for chart ``error_bar`` exceptions.
:issue:`115`.
* Added clearer reporting of nested exceptions in ``write()`` methods.
:pull:`108`.
* Added support for ``inside_base`` data label position in charts.
Release 0.5.3 - February 20 2014
--------------------------------
* Added checks and warnings for data validation limits.
:issue:`89`.
* Added option to add hyperlinks to images. Thanks to Paul Tax.
* Added Python 3 Http server example. Thanks to Krystian Rosinski.
* Added :func:`set_calc_mode` method to control automatic calculation of
formulas when worksheet is opened. Thanks to Chris Tompkinson.
* Added :func:`use_zip64` method to allow ZIP64 extensions when writing
very large files.
* Fix to handle '0' and other number like strings as number formats.
:issue:`103`.
* Fix for missing images in ``in_memory`` mode.
:issue:`102`.
Release 0.5.2 - December 31 2013
--------------------------------
* Added date axis handling to charts. See :ref:`ex_chart_date_axis`.
:feature:`73`.
* Added support for non-contiguous chart ranges.
:feature:`44`.
* Fix for low byte and control characters in strings.
:issue:`86`.
* Fix for chart titles with exclamation mark.
:issue:`83`.
* Fix to remove duplicate :func:`set_column` entries.
:issue:`82`.
Release 0.5.1 - December 2 2013
-------------------------------
* Added interval unit option for category axes.
:feature:`69`.
* Fix for axis name font rotation.
* Fix for several minor issues with Pie chart legends.
Release 0.5.0 - November 17 2013
--------------------------------
* Added :ref:`Chartsheets <Chartsheet>` to allow single worksheet charts.
:feature:`10`.
Release 0.4.9 - November 17 2013
--------------------------------
* Added :ref:`chart object positioning and sizing <chart_layout>` to allow
positioning of plotarea, legend, title and axis names.
:feature:`66`.
* Added :func:`set_title()` ``none`` option to turn off automatic titles.
* Improved :func:`define_name()` name validation.
* Fix to prevent modification of user parameters in
:func:`conditional_format()`.
Release 0.4.8 - November 13 2013
--------------------------------
* Added ``in_memory`` :func:`Workbook` constructor option to allow XlsxWriter
to work on Google App Engine.
:feature:`28`.
Release 0.4.7 - November 9 2013
-------------------------------
* Added fix for markers on non-marker scatter charts.
:issue:`62`.
* Added custom error bar option. Thanks to input from Alex Birmingham.
* Changed Html docs to Bootstrap theme.
* Added :ref:`ex_merge_rich`.
Release 0.4.6 - October 23 2013
-------------------------------
* Added font formatting to chart legends.
Release 0.4.5 - October 21 2013
-------------------------------
* Added ``position_axis`` chart axis option.
* Added optional list handling for chart names.
Release 0.4.4 - October 16 2013
-------------------------------
* Documented use of :ref:`cell utility <cell_utility>` functions.
* Fix for tables added in non-sequential order. Closes
:issue:`51` reported by calfzhou.
Release 0.4.3 - September 12 2013
---------------------------------
* Fix for comments overlying columns with non-default width.
:issue:`45`.
Release 0.4.2 - August 30 2013
------------------------------
* Added a default blue underline hyperlink format for :func:`write_url()`.
* Added :func:`Workbook` constructor options ``strings_to_formulas`` and
``strings_to_urls`` to override default conversion of strings in write().
Release 0.4.1 - August 28 2013
------------------------------
* Fix for charts and images that cross rows and columns that are hidden or
formatted but which don't have size changes. :issue:`42` reported by
Kristian Stobbe.
Release 0.4.0 - August 26 2013
------------------------------
* Added more generic support for JPEG files. :issue:`40` reported by Simon
Breuss.
* Fix for harmless Python 3 installation warning. :issue:`41` reported by James
Reeves.
Release 0.3.9 - August 24 2013
------------------------------
* Added fix for minor issue with :func:`insert_image` for images that extend
over several cells.
* Added fix to ensure formula calculation on load regardless of Excel version.
Release 0.3.8 - August 23 2013
------------------------------
* Added handling for Decimal(), Fraction() and other float types to the
:func:`write()` function.
* Added Python 2.5 and Jython support. Thanks to Jonas Diemer for the patch.
Release 0.3.7 - August 16 2013
------------------------------
* Added :func:`write_boolean()` function to write Excel boolean values.
:feature:`37`. Also added explicit handling of Python bool values to the
:func:`write()` function.
* Changed :func:`Workbook` constructor option
``strings_to_numbers`` default option to False so that there is no implicit
conversion of numbers in strings to numbers. The previous behavior can be
obtained by setting the constructor option to True.
**Note** This is a backward incompatibility.
Release 0.3.6 - July 26 2013
-----------------------------
* Simplified import based on a suggestion from John Yeung.
:feature:`26`.
* Fix for NAN/INF converted to invalid numbers in write(). :issue:`30`.
* Added :func:`Workbook` constructor option ``strings_to_numbers`` to
override default conversion of number strings to numbers in write().
* Added :func:`Workbook` constructor option ``default_date_format`` to
allow a default date format string to be set.
:feature:`5`.
Release 0.3.5 - June 28 2013
-----------------------------
* Reverted back to using codecs for file encoding (versions <= 0.3.1) to avoid
numerous UTF-8 issues in Python2/3.
Release 0.3.4 - June 27 2013
-----------------------------
* Added Chart line smoothing option. Thanks to Dieter Vandenbussche.
* Added Http Server example (:ref:`ex_http_server`). Thanks to
Alexander Afanasiev.
* Fixed inaccurate column width calculation. Closes :issue:`27` Thanks to John Yeung.
* Added chart axis font rotation.
Release 0.3.3 - June 10 2013
-----------------------------
* Minor packaging fixes.
:issue:`14` and :issue:`19`.
* Fixed explicit UTF-8 file encoding for Python 3.
:pull:`15` from Alexandr Shadchin.
* Fixed invalid string formatting resulted in misleading stack trace.
:pull:`21` from Andrei Korostelev.
Release 0.3.2 - May 1 2013
-----------------------------
* Speed optimizations. The module is now 10-15% faster on average.
Release 0.3.1 - April 27 2013
-----------------------------
* Added chart support. See the :ref:`chart_class`, :ref:`working_with_charts`
and :ref:`chart_examples`.
Release 0.3.0 - April 7 2013
-----------------------------
* Added worksheet sparklines. See :ref:`sparklines`, :ref:`ex_sparklines1` and
:ref:`ex_sparklines2`
Release 0.2.9 - April 7 2013
-----------------------------
* Added worksheet tables. See :ref:`tables` and :ref:`ex_tables`.
* Tested with the new Python stable releases 2.7.4 and 3.3.1. All tests now
pass in the following versions:
* Python 2.6
* Python 2.7.2
* Python 2.7.3
* Python 2.7.4
* Python 3.1
* Python 3.2
* Python 3.3.0
* Python 3.3.1
* There are now over 700 unit tests including more than 170 tests that
compare against the output of Excel.
Release 0.2.8 - April 4 2013
-----------------------------
* Added worksheet outlines and grouping. See :ref:`outlines`.
Release 0.2.7 - April 3 2013
-----------------------------
* Added :func:`set_default_row` method. See :ref:`ex_hide_row_col`.
* Added hide_row_col.py, hide_sheet.py and text_indent.py examples.
Release 0.2.6 - April 1 2013
-----------------------------
* Added :func:`freeze_panes` and :func:`split_panes` methods.
See :ref:`ex_panes` .
* Added :func:`set_selection` method to select worksheet cell or range of
cells.
Release 0.2.5 - April 1 2013
-----------------------------
* Added additional :func:`Workbook` parameters ``'tmpdir'`` and
``'date_1904'``.
Release 0.2.4 - March 31 2013
-----------------------------
* Added :func:`Workbook` ``'constant_memory'`` constructor property to
minimize memory usage when writing large files. See :ref:`memory_perf`
for more details.
* Fixed bug with handling of UTF-8 strings in worksheet names (and probably
some other places as well). Reported by Josh English.
* Fixed bug where temporary directory used to create xlsx files wasn't
cleaned up after program close.
Release 0.2.3 - March 27 2013
-----------------------------
* Fixed bug that was killing performance for medium sized files. The module
is now 10x faster than previous versions. Reported by John Yeung.
Release 0.2.2 - March 27 2013
-----------------------------
* Added worksheet data validation options. See the :func:`data_validation`
method, :ref:`working_with_data_validation` and :ref:`ex_data_valid`.
* There are now over 600 unit tests including more than 130 tests that
compare against the output of Excel.
Release 0.2.1 - March 25 2013
-----------------------------
* Added support for datetime.datetime, datetime.date and datetime.time
to the :func:`write_datetime` method. :issue:`3`.
Thanks to Eduardo (eazb) and Josh English for the prompt.
Release 0.2.0 - March 24 2013
-----------------------------
* Added conditional formatting. See the :func:`conditional_format` method,
:ref:`working_with_conditional_formats` and :ref:`ex_cond_format`.
Release 0.1.9 - March 19 2013
-----------------------------
* Added Python 2.6 support. All tests now pass in the following versions:
* Python 2.6
* Python 2.7.2
* Python 2.7.3
* Python 3.1
* Python 3.2
* Python 3.3.0
Release 0.1.8 - March 18 2013
-----------------------------
* Fixed Python 3 support.
Release 0.1.7 - March 18 2013
-----------------------------
* Added the option to write cell comments to a worksheet. See
:func:`write_comment` and :ref:`cell_comments`.
Release 0.1.6 - March 17 2013
-----------------------------
* Added :func:`insert_image` worksheet method to support inserting PNG and
JPEG images into a worksheet. See also the example program
:ref:`ex_insert_image`.
* There are now over 500 unit tests including more than 100 tests that
compare against the output of Excel.
Release 0.1.5 - March 10 2013
-----------------------------
* Added the :func:`write_rich_string` worksheet method to allow writing of
text with multiple formats to a cell. Also added example program:
:ref:`ex_rich_strings`.
* Added the :func:`hide` worksheet method to hide worksheets.
* Added the :func:`set_first_sheet()` worksheet method.
Release 0.1.4 - March 8 2013
----------------------------
* Added the :func:`protect` worksheet method to allow protection of cells
from editing. Also added example program: :ref:`ex_protection`.
Release 0.1.3 - March 7 2013
----------------------------
* Added worksheet methods:
* :func:`set_zoom` for setting worksheet zoom levels.
* :func:`right_to_left` for middle eastern versions of Excel.
* :func:`hide_zero` for hiding zero values in cells.
* :func:`set_tab_color` for setting the worksheet tab color.
Release 0.1.2 - March 6 2013
----------------------------
* Added autofilters. See :ref:`working_with_autofilters` for more details.
* Added the :func:`write_row` and :func:`write_column` worksheet methods.
Release 0.1.1 - March 3 2013
----------------------------
* Added the :func:`write_url` worksheet method for writing hyperlinks to
a worksheet.
Release 0.1.0 - February 28 2013
--------------------------------
* Added the :func:`set_properties` workbook method for setting document
properties.
* Added several new examples programs with documentation. The examples now
include:
* array_formula.py
* cell_indentation.py
* datetimes.py
* defined_name.py
* demo.py
* doc_properties.py
* headers_footers.py
* hello_world.py
* merge1.py
* tutorial1.py
* tutorial2.py
* tutorial3.py
* unicode_polish_utf8.py
* unicode_shift_jis.py
Release 0.0.9 - February 27 2013
--------------------------------
* Added the :func:`define_name` method to create defined names and ranges
in a workbook or worksheet.
* Added the :func:`worksheets` method as an accessor for the worksheets in a
workbook.
Release 0.0.8 - February 26 2013
--------------------------------
* Added the :func:`merge_range` method to merge worksheet cells.
Release 0.0.7 - February 25 2013
--------------------------------
* Added final page setup methods to complete the page setup section.
* :func:`print_area`
* :func:`fit_to_pages`
* :func:`set_start_page`
* :func:`set_print_scale`
* :func:`set_h_pagebreaks`
* :func:`set_v_pagebreaks`
Release 0.0.6 - February 22 2013
--------------------------------
* Added page setup method.
* :func:`print_row_col_headers`
Release 0.0.5 - February 21 2013
--------------------------------
* Added page setup methods.
* :func:`repeat_rows`
* :func:`repeat_columns`
Release 0.0.4 - February 20 2013
--------------------------------
* Added Python 3 support with help from John Evans. Tested with:
* Python-2.7.2
* Python-2.7.3
* Python-3.2
* Python-3.3.0
* Added page setup methods.
* :func:`center_horizontally`
* :func:`center_vertically`
* :func:`set_header`
* :func:`set_footer`
* :func:`hide_gridlines`
Release 0.0.3 - February 19 2013
--------------------------------
* Added page setup method.
* :func:`set_margins`
Release 0.0.2 - February 18 2013
--------------------------------
* Added page setup methods.
* :func:`set_landscape`
* :func:`set_portrait`
* :func:`set_page_view`
* :func:`set_paper`
* :func:`print_across`
Release 0.0.1 - February 17 2013
--------------------------------
* First public release.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-XlsxWriter.git
git@api.gitlife.ru:oschina-mirror/mirrors-XlsxWriter.git
oschina-mirror
mirrors-XlsxWriter
mirrors-XlsxWriter
main