forked from python-excel/xlrd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
HISTORY.html
339 lines (318 loc) · 13.3 KB
/
HISTORY.html
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
TODO -- refer to svn log if you really need to know :-)
<p> Revision : 3782 -- Author: sjmachin -- Date: 2009-02-23 23:00:50
</p><ul>
<li> colname utility function now supports more than 256 columns.
</li><li> Fix bug where BIFF record type 0x806 was being regarded as a formula opcode.
</li><li> Ignore PALETTE record when formatting_info is false.
</li><li> Tolerate up to 4 bytes trailing junk on PALETTE record.
</li><li> Fixed bug in unused utility function xldate_from_date_tuple which affected some years after 2099.
</li><li> Added code for inspecting as-yet-unused record types: FILEPASS, TXO, NOTE.
</li><li> Added inspection code for add_in function calls.
</li><li> Added support for unnumbered biff_dump (better for doing diffs).
</li></ul>
<p> Revision : 3613 -- Author: chris -- Date: 2008-11-22 04:06:36
</p><ul>
<li> ignore distutils cruft
</li></ul>
<p> Revision : 3574 -- Author: sjmachin -- Date: 2008-11-04 11:51:20
</p><ul>
<li> Avoid assertion error in compdoc when -1 used instead of -2 for first_SID of empty SCSS
</li></ul>
<p> Revision : 3480 -- Author: chris -- Date: 2008-09-19 20:43:00
</p><ul>
<li> Make version numbers match up.
</li></ul>
<p> Revision : 3431 -- Author: sjmachin -- Date: 2008-07-28 10:37:35
</p><ul>
<li> Enhanced recovery from out-of-order/missing/wrong CODEPAGE record.
</li><li> Added Name.area2d convenience method.
</li><li> Avoided some checking of XF info when formatting_info is false.
</li><li> Minor changes in preparation for XLSX support.
</li></ul>
<p> Revision : 3311 -- Author: chris -- Date: 2008-03-14 22:09:01
</p><ul>
<li> remove duplicate files that were out of date.
</li></ul>
<p> Revision : 3287 -- Author: sjmachin -- Date: 2008-02-14 06:33:32
</p><ul>
<li> Basic support for Excel 2.0
</li></ul>
<p> Revision : 3284 -- Author: sjmachin -- Date: 2008-02-09 05:37:57
</p><ul>
<li> Decouple Book init & load.
</li><li> runxlrd: minor fix for xfc.
</li><li> More Excel 2.x work.
</li><li> is_date_format() tweak.
</li><li> Better detection of IronPython.
</li></ul>
<p> Revision : 3265 -- Author: sjmachin -- Date: 2007-12-25 19:09:45
</p><ul>
<li> Better error message (including first 8 bytes of file) when file is not in a supported format.
</li></ul>
<p> Revision : 3263 -- Author: sjmachin -- Date: 2007-12-20 07:04:55
</p><ul>
<li> More BIFF2 formatting: ROW, COLWIDTH, and COLUMNDEFAULT records;
</li><li> finished stage 1 of XF records.
</li></ul>
<p> Revision : 3262 -- Author: sjmachin -- Date: 2007-12-11 07:40:33
</p><ul>
<li> More work on supporting BIFF2 (Excel 2.x) files.
</li></ul>
<p> Revision : 3250 -- Author: sjmachin -- Date: 2007-12-04 20:37:14
</p><ul>
<li> Added support for Excel 2.x (BIFF2) files. Data only, no formatting info. Alpha.
</li></ul>
<p> Revision : 3234 -- Author: sjmachin -- Date: 2007-11-21 00:55:56
</p><ul>
<li> Wasn't coping with EXTERNSHEET record followed by CONTINUE record(s).
</li></ul>
<p> Revision : 3168 -- Author: sjmachin -- Date: 2007-10-13 09:19:01
</p><ul>
<li> Allow for BIFF2/3-style FORMAT record in BIFF4/8 file
</li><li> Avoid crash when zero-length Unicode string missing options byte.
</li><li> Warning message if sector sizes are extremely large.
</li><li> Work around corrupt STYLE record
</li><li> Added missing entry for blank cell type to ctype_text
</li><li> Added "fonts" command to runxlrd script
</li><li> Warning: style XF whose parent XF index != 0xFFF
</li></ul>
<p> Revision : 2868 -- Author: sjmachin -- Date: 2007-07-11 11:02:55
</p><ul>
<li> Logfile arg wasn't being passed from open_workbook to compdoc.CompDoc.
</li></ul>
<p> Version 0.6.1, 2007-06-10
</p>
<ul>
<li> Version number updated to 0.6.1
</li>
<li> Documented runxlrd.py commands in its usage message. Changed commands: dump to biff_dump, count_records to biff_count.
</li>
</ul>
<p> Version 0.6.1a5
</p>
<ul>
<li> Bug fixed: Missing "<" in a struct.unpack call means can't open files on bigendian platforms. Discovered by "Mihalis".
</li>
<li> Removed antique undocumented Book.get_name_dict method and experimental "trimming" facility.
</li>
<li> Meaningful exception instead of IndexError if a SAT (sector allocation table) is corrupted.
</li>
<li> If no CODEPAGE record in pre-8.0 file, assume ascii and keep going (instead of raising exception).
</li>
</ul>
<p> Version 0.6.1a4
</p>
<ul>
<li> At least one source of XLS files writes parent style XF records *after* the child cell
XF records that refer to them, triggering IndexError in 0.5.2 and AssertionError in
later versions.
Reported with sample file by Todd O'Bryan.
Fixed by changing to two-pass processing of XF records.
</li>
<li> Formatting info in pre-BIFF8 files: Ensured appropriate defaults and lossless conversions to make
the info BIFF8-compatible. Fixed bug in extracting the "used" flags.
</li>
<li> Fixed problems discovered with opening test files from Planmaker 2006
(http://www.softmaker.com/english/ofwcomp_en.htm):
(1) Four files have reduced size of PALETTE record
(51 and 32 colours; Excel writes 56 always). xlrd now emits a NOTE to the logfile and continues.
(2) FORMULA records use the Excel 2.x record code 0x0021 instead of 0x0221. xlrd now continues silently.
(3) In two files, at the OLE2 compound document level, the internal directory says that the length of
the Short-Stream Container Stream is 16384 bytes, but the actual contents are 11264 and 9728 bytes respectively.
xlrd now emits a WARNING to the logfile and continues.
</li>
<li> After discussion with Daniel Rentz, the concept of two lists of XF (eXtended Format) objects
(raw_xf_list and computed_xf_list) has been abandoned. There is now a single list, called xf_list
</li>
</ul>
<p> Version 0.6.1a3
</p>
<ul>
<li> Added Book.sheets ... for sheetx, sheet in enumerate(book.sheets):
</li>
<li> Formatting info: extraction of sheet-level flags from WINDOW2 record, and sheet.visibility
from BOUNDSHEET record. Added Macintosh-only Font attributes "outline" and "shadow'.
</li>
</ul>
<p> Version 0.6.1a2
</p>
<ul>
<li> Added extraction of merged cells info.
</li>
<li> pyExcelerator uses "general" instead of "General" for the generic "number format". Worked around.
</li>
<li> Crystal Reports writes "WORKBOOK" in the OLE2 Compound Document directory instead of "Workbook".
Changed to case-insensitive directory search. Reported by Vic Simkus.
</li>
</ul>
<p> Version 0.6.1a1, 2006-12-18
</p>
<ul>
<li> Added formatting information for cells (font, "number format", background, border, alignment and protection)
and rows/columns (height/width etc). To save memory and time for those who don't need it,
this information is extracted only if formatting_info=1 is supplied
to the open_workbook() function. The cell records BLANK and MULBLANKS
which contain no data, only formatting information, will continue to be ignored
in the default (no formatting info) case.
</li>
<li> Ralph Heimburger reported a problem with xlrd being intolerant
about an Excel 4.0 file (created by "some web app") with a DIMENSIONS record
that omitted Microsoft's usual padding with 2 unused bytes. Fixed.
</li>
</ul>
<p> Version 0.6.0a4, not released
</p>
<ul>
<li> Added extraction of human-readable formulas from NAME records.
</li>
<li> Worked around OOo Calc writing 9-byte BOOLERR records instead of 8. Reported by Rory Campbell-Lange.
</li>
<li> This history file converted to descending chronological order and HTML format.
</li>
</ul>
<p> Version 0.6.0a3, 2006-09-19
</p>
<ul>
<li> Names: minor bugfixes; added script xlrdnameAPIdemo.py
</li>
<li> ROW records were being used as additional hints for sizing memory requirements. In some
files the ROW records overstate the number of used columns, and/or there are ROW records for
rows that have no data in them. This would cause xlrd to report sheet.ncols and/or sheet.nrows
as larger than reasonably expected. Change: ROW records are ignored. The number of columns/rows is
based solely on the highest column/row index seen in non-empty data records. Empty data records (types
BLANK and MULBLANKS) which contain no data, only formatting information, have always been ignored, and
this will continue. Consequence: trailing rows and columns which contain only empty cells will
vanish.
</li>
</ul>
<p> Version 0.6.0a2, 2006-09-13
</p>
<ul>
<li> Fixed a bug reported by Rory Campbell-Lange.: "open failed"; incorrect assumptions about the layout
of array formulas which return strings.
</li>
<li> Further work on defined names, especially the API.
</li>
</ul>
<p> Version 0.6.0a1, 2006-09-08
</p>
<ul>
<li> Sheet objects have two new convenience methods: col_values(colx, start_rowx=0, end_rowx=None)
and the corresponding col_types. Suggested by Dennis O'Brien.
</li>
<li> BIFF 8 file missing its CODEPAGE record: xlrd will now assume utf_16_le encoding
(the only possibility) and keep going.
</li>
<li> Older files missing a CODEPAGE record: an exception will be raised.
Thanks to Sergey Krushinsky for a sample file.
The open_workbook() function has a new argument (encoding_override) which can
be used if the CODEPAGE record is missing or incorrect (for example, codepage=1251
but the data is actually encoded in koi8_r). The runxlrd.py script takes a
corresponding -e argument, for example -e cp1251
</li>
<li> Further work done on parsing "number formats". Thanks to Chris Withers for the
"General_)" example.
</li>
<li> Excel 97 introduced the concept of row and column labels, defined by Insert > Name > Labels.
The ranges containing the labels are now exposed as the Sheet attributes
row_label_ranges and col_label_ranges.
</li>
<li> The major effort in this 0.6.0 release has been the provision of access
to named cell ranges and named constants (Excel: Insert/Name/Define).
Juan C. Méndez provided very useful real-world sample files.
</li>
</ul>
<p> Version 0.5.3a1, 2006-05-24
</p>
<ul>
<li> John Popplewell and Richard Sharp provided sample files which caused any
reliance at all on DIMENSIONS records and ROW records to be abandoned.
</li>
<li> If the file size is not a whole number of OLE sectors, a warning message is logged.
Previously this caused an exception to be raised.
</li>
</ul>
<p> Version 0.5.2, 2006-03-14, public release
</p>
<ul>
<li> Updated version numbers, README, HISTORY.
</li>
</ul>
<p> Version 0.5.2a3, 2006-03-13
</p>
<ul>
<li> Gnumeric writes user-defined formats with format codes starting at
50 instead of 164; worked around.
</li>
<li> Thanks to Didrik Pinte for reporting the need for xlrd to be more tolerant
of the idiosyncracies of other software, for supplying sample files,
and for performing alpha testing.
</li>
<li> '_' character in a format should be treated like an escape character; fixed.
</li>
<li> An "empty" formula result means a zero-length string, not an empty cell! Fixed.
</li>
</ul>
<p> Version 0.5.2a2, 2006-03-09
</p>
<ul>
<li> Found that Gnumeric writes all DIMENSIONS records with nrows and ncols
each 1 less than they should be (except when it clamps ncols at 256!),
and pyXLwriter doesn't write ROW records. Cell memory pre-allocation was
generalised to use ROW records if available with fall-back to DIMENSIONS records.
</li>
</ul>
<p> Version 0.5.2a1, 2006-03-06
</p>
<ul>
<li> pyXLwriter writes DIMENSIONS record with antique opcode 0x0000
instead of 0x0200; worked around
</li>
<li> A file written by Gnumeric had zeroes in DIMENSIONS record
but data in cell A1; worked around
</li>
</ul>
<p> Version 0.5.1, 2006-02-18, released to Journyx
</p>
<ul>
<li> Python 2.1 mmap requires file to be opened for update access.
Added fall-back to read-only access without mmap if 2.1 open fails
because "permission denied".
</li>
</ul>
<p> Version 0.5, 2006-02-07, released to Journyx
</p>
<ul>
<li> Now works with Python 2.1. Backporting to Python 2.1 was partially
funded by Journyx - provider of timesheet and project accounting
solutions (http://journyx.com/)
</li>
<li> open_workbook() can be given the contents of a file
instead of its name. Thanks to Remco Boerma for the suggestion.
</li>
<li> New module attribute __VERSION__ (as a string; for example "0.5")
</li>
<li> Minor enhancements to classification of formats as date or not-date.
</li>
<li> Added warnings about files with inconsistent OLE compound document
structures. Thanks to Roman V. Kiseliov (author of pyExcelerator)
for the tip-off.
</li>
</ul>
<p> Version 0.4a1, 2005-09-07, released to Laurent T.
</p>
<ul>
<li> Book and sheet objects can now be pickled and unpickled.
Instead of reading a large spreadsheet multiple times,
consider pickling it once and loading the saved pickle;
can be much faster. Thanks to Laurent Thioudellet for the
enhancement request.
</li>
<li> Using the mmap module can be turned off.
But you would only do that for benchmarking purposes.
</li>
<li> Handling NUMBER records has been made faster
</li>
</ul>
<p> Version 0.3a1, 2005-05-15, first public release
</p>