File: Changes

package info (click to toggle)
xlsxwriter 3.1.9-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 56,308 kB
  • sloc: python: 51,511; javascript: 7,768; sh: 284; makefile: 195; perl: 75
file content (1649 lines) | stat: -rw-r--r-- 44,298 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
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 via the
  :func:`add_signed_vba_project` method. See `Working with VBA Macros`_.

  :feature:`1008`.

  .. _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://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.


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.