forked from iliaal/php_excel
-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathChangeLog
More file actions
239 lines (218 loc) · 12.4 KB
/
ChangeLog
File metadata and controls
239 lines (218 loc) · 12.4 KB
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
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
- Comprehensive test coverage for FormControl (all 7 control types)
- Tests for previously untested methods: Book::addPictureAsLink,
Book::conditionalFormat, Sheet::removeComment
- Tests for untested optional parameters across ExcelBook, ExcelSheet,
ExcelFormat, ExcelFilterColumn, ExcelRichString, ExcelConditionalFormatting,
and ExcelTable classes
- Licensed-only test for row 0 access and large cell counts
### Fixed
- Test 002 (date pack/unpack) timezone detection to work cross-platform
[2026-04-05] - Version 2.0.0
* Added PHP 8.3, 8.4, 8.5 and master support
* Minimum PHP version is now 8.3
* Minimum LibXL version is now 4.6.0
* Added PIE (PHP Installer for Extensions) support via composer.json
* Fixed crash when trying to read an empty file (from unreleased 1.0.3)
* Fixed bug with writing references (see issue #234, from unreleased 1.0.3)
* Fixed memory leaks in setProtect(), addDataValidation(), addDataValidationDouble()
* Fixed use-after-free when parent object is GC'd before child
* Fixed memory corruption in getIndexRange() on 64-bit (int/zend_long aliasing)
* Fixed NULL pointer dereferences in FilterColumn::filter(), getCustomFilter(),
addPicture(), Sheet::writeError()
* Fixed Sheet::autoFilter() returning true instead of ExcelAutoFilter object
* Fixed AutoFilter::column()/columnByIndex() returning true instead of FilterColumn
* Fixed AutoFilter::getRef()/getSortRange() writing wrong value to col_last key
* Fixed FilterColumn::__construct() arginfo/parameter mismatch
* Fixed Book::getSheetName() rejecting 0-based index
* Fixed Sheet::cellFormat() not setting book handle on returned format
* Fixed constructors returning false on error (now throw exceptions)
* Replaced all zend_bool with bool, long with zend_long
* Replaced getThis() with ZEND_THIS, ZEND_NUM_ARGS() checks with
ZEND_PARSE_PARAMETERS_NONE()
* All classes marked ZEND_ACC_NOT_SERIALIZABLE
* Added typed parameter arginfo (399 parameters) and return type arginfo
(277 methods)
* Added new classes:
- ExcelRichString (rich text with mixed fonts in a single cell)
- ExcelFormControl (checkboxes, dropdowns, buttons, spinners, etc.)
- ExcelConditionalFormat (conditional formatting style rules)
- ExcelConditionalFormatting (conditional formatting ranges and rules)
- ExcelCoreProperties (workbook metadata: title, author, dates, etc.)
- ExcelTable (structured table support for xlsx)
* Added new ExcelBook methods:
- addRichString(), calcMode(), setCalcMode()
- addConditionalFormat(), addFormatFromStyle()
- removeVBA(), removePrinterSettings()
- dpiAwareness(), setDpiAwareness()
- coreProperties(), removeAllPhonetics()
- getLibXlVersion(), getPhpExcelVersion()
- addPictureAsLink(), moveSheet()
* Added new ExcelBook methods (requires LibXL 5.0.0+):
- setPassword(), dpiAwareness(), setDpiAwareness()
* Added new ExcelBook methods (requires LibXL 5.0.1+):
- loadInfoRaw()
* Added new ExcelBook methods (requires LibXL 5.1.0+):
- errorCode(), conditionalFormat(), conditionalFormatSize(), clear()
* Added new ExcelSheet methods:
- firstFilledRow(), lastFilledRow(), firstFilledCol(), lastFilledCol()
- removePicture(), removePictureByIndex()
- isRichStr(), readRichStr(), writeRichStr()
- formControlSize(), formControl()
- getActiveCell(), setActiveCell()
- selectionRange(), addSelectionRange(), removeSelection()
- tabColor(), getTabRgbColor(), setTabRgbColor()
- hyperlinkIndex()
- colWidthPx(), rowHeightPx(), colFormat(), rowFormat()
- setColPx(), setRowPx(), setBorder()
- addTable(), getTableByName(), getTableByIndex()
- applyFilter2()
- addConditionalFormatting()
- addDataValidation(), addDataValidationDouble(), removeDataValidations()
* Added new ExcelSheet methods (requires LibXL 5.1.0+):
- conditionalFormatting(), removeConditionalFormatting()
- conditionalFormattingSize()
* Added ExcelAutoFilter::addSort()
* Added ExcelSheet::AS_STRING const (from unreleased 1.0.3, PR 183 by ederuiter)
* Added constants for CalcMode, CellStyle, TableStyle, FormControl types,
ConditionalFormat types/operators/time periods, and CFVOType
[2016-06-23] - Version 1.0.2
* Fixed bug in ExcelSheet::addPictureDim() (see issue #120)
* Fixed bug in ExcelSheet::isLicensed() (see issue #122)
* Added new methods (requires LibXL 3.6.2)
- ExcelBook::setAutoFitArea()
- ExcelBook::printArea()
- ExcelBook::printRepeatCols()
- ExcelBook::printRepeatRows()
* Added support for LibXL 3.6.3
* ExcelSheet::addPictureDim() & ExcelSheet::addPictureScaled() now support position parameters
* Includes official PHP7 release
* Added support for libxl compiled from source
[2015-02-26] - Version 1.0.1
* Added methods
- ExcelBook::sheetType()
- ExcelSheet::colHidden()
- ExcelSheet::rowHidden()
- ExcelSheet::setColHidden()
- ExcelSheet::setRowHidden()
- ExcelSheet::isLicensed()
* Added new methods (requires LibXL 3.6.0)
- ExcelSheet::hyperlinkSize()
- ExcelSheet::hyperlink()
- ExcelSheet::delHyperlink()
- ExcelSheet::addHyperlink()
- ExcelSheet::mergeSize()
- ExcelSheet::merge()
- ExcelSheet::delMergeByIndex()
- ExcelSheet::splitInfo()
* Added data type argument for ExcelSheet::writeCol() (see issue #29)
* Fixed bug in ExcelSheet::read() (see issue #86)
* Fixed bug in ExcelBook::setDefaultFont() (see issue #66)
* Added autofit support for ExcelBook::setColWidth()
* Added implicit formula recognition on ExcelSheet::write() operations (prefix formula with '=')
* Added multibyte support for license name and license key (see issue #60 and README)
* Added default date format when writing dates
* Added ExcelSheet::__construct(ExcelBook $book, $name) for customized ExcelSheets
* Added warnings on read/write errors
* Removed final keyword for ExcelFormat::__construct(ExcelBook $book)
* Removed invalid PAPER_* constants in ExcelSheet
* Removed invalid COLOR_* constants in ExcelFormat
* Updated documentation and README
* Changed php.ini variable name: excel.ini_skip_empty --> excel.skip_emtpy
[2014-06-03] - Version 1.0
* Fixed issue #63 writing for NULL values using writeRow()
* Added excel.ini_skip_empty INI setting that allows null values to be skipped, if set to 2 the empty strings will be skipped as well
* Added Sheet::setRightToLeft() and Sheet::setRightToLeft() methods that specifies whether the sheet in is "right to left" display mode
* Added Book::isTemplate() and Book::setTemplate() methods for detecting xltx files and converting from xlsx to xltx and vice versa
* Fixed compilation with LibXL 3.5.4
* Added optional scope parameter to setNamedRange()/delNamedRange()/getNamedRange() methods
* Updated getNamedRange()/getIndexRange() methods to retrieve hidden state
* Added parameter to readRow/readCol/read methods that specifiy whether to parse formula or its value.
* Added ExcelBook::packDateValues() method for generating Excel date value
* Added ExcelBook::setPrintArea() method for setting print area
* Fixed parsing of non-numeric formulas inside read() method
* Fixed parameter processing inside ExcelSheet::getVerPageBreak()/getHorPageBreak() methods
* Fixed parameter order inside ExcelSheet::getNamedRange()/getIndexRange() methods
* Fixed return value processing inside ExcelBook::setActiveSheet() method
[2013-11-18] - Version 0.9.9
* Added ExcelBook::isDate1904()/ExcelBook::setDate1904() methods to set/retrieve base date format
* Allow compilation against LibXL 3.5.3
* Fixed bug with parameter order inside setNamedRange method (jacksonja)
[2012-12-31] - Version 0.9.8
* Allow compilation against LibXL 3.4
* Updated ExcelSheet::addPictureScaled() and ExcelSheet::addPictureDim() to support optional x/y offset parameters
[2012-10-16] - Version 0.9.7
* Updated INFO section of the extension to show libXL version
* Added new methods (requires LibXL 3.2.4+):
- added ExcelSheet::getTopLeftView() and ExcelSheet::setTopLeftView() methods for getting/setting a view position in the sheet
- added ExcelSheet::addrToRowCol() and ExcelSheet::rowColToAddr() methods for translating Excel cell position to row/column definitions
[2011-10-12] - Version 0.9.6
* Added new methods (requires LibXL 3.2.3+):
- ExcelSheet::isHidden() that whether sheet is hidden.
- ExcelSheet::setHidden(bool flag) that hides/unhides the sheet.
* Allow compilation against LibXL 3.2.3/3.2.2
* Added a work-around for image index bug inside LibXL 3.2.2
[2011-08-03] - Version 0.9.1
* Added new methods (requires LibXL 3.2.0+):
- ExcelSheet::setPrintFit(int wPages, int hPages) that fits sheet width and sheet height to wPages and hPages respectively
- ExcelSheet::getPrintFit() that returns whether fit to page option is enabled, and if so to what width & height
- ExcelSheet::getNamedRange(string name) that gets the named range coordianates by name, returns false if range is not found
- ExcelSheet::getIndexRange(int index) that gets the named range coordianates by index, returns false if range is not found
- ExcelSheet::namedRangeSize() that returns the number of named ranges in the sheet
- ExcelSheet::getVerPageBreak(int index) that returns column with vertical page break at position index
- ExcelSheet::getVerPageBreakSize() that returns a number of vertical page breaks in the sheet
- ExcelSheet::getHorPageBreak(int index) that eturns column with horizontal page break at position index
- ExcelSheet::getHorPageBreakSize() that returns a number of horizontal page breaks in the sheet
- ExcelSheet::getPictureInfo(int index) that returns a information about a workbook picture at position index in worksheet
- ExcelSheet::getNumPictures() that returns a number of pictures in this worksheet
- ExcelBook::biffVersion() that returns BIFF version of binary file. (Used for xls format only)
- ExcelBook::getRefR1C1() that returns whether the R1C1 reference mode is active
- ExcelBook::setRefR1C1(bool active) that sets the R1C1 reference mode
- ExcelBook::getPicture(int picture_index) that returns a picture at position index
- ExcelBook::getNumPictures() that returns a number of pictures in this workbook
- ExcelSheet ExcelBook::insertSheet(int index, string name [, ExcelSheet sh]) that inserts a new sheet to this book at position index,
returns the sheet handle. If ExcelSheet parameter is missing a new sheet will be created.
[2011-01-14] - Version 0.9.1
* Added support for LibXL 3.1.0+
* Added work-around for a bug inside xlSheetIsDate() that detects treats custom number formats as dates
* Added ExcelBook::getSheetByName() method to retrieve sheet by name (original patch by Rob Gagnon)
* Added basic documentation
* Fixed a bug with ExcelSheet::readRow()/ExcelSheet::readCol() when end parameter is specified
[2010-08-27] - Version 0.9.0
* Added support for LibXL 3.1.0
* Added new methods
- ExcelSheet::setNamedRange(string name, int row, int col, int to_row, int to_col)
- ExcelSheet::delNamedRange(string name)
- ExcelSheet::setPrintRepeatRows(int rowFirst, int rowLast)
- ExcelSheet::setPrintRepeatCols(int colFirst, int colLast)
- ExcelSheet::getGroupSummaryBelow()
- ExcelSheet::setGroupSummaryBelow(bool direction)
- ExcelSheet::getGroupSummaryRight()
- ExcelSheet::setGroupSummaryRight(bool direction)
- ExcelSheet::clearPrintRepeats()
- ExcelSheet::clearPrintArea()
[2010-08-27] - Version 0.8.6
* Added support for LibXL 3.0.0
* Added support for generating Excel 2007/2010 (xlsx files)
- the ExcelBook() method now has a constructor parameter that can be used to toggle xlsx mode
* Added ExcelBook methods for xlsx color
- colorUnpack, colorPack, setRGBMode, rgbMode
* Added missing validation checks and fixed on-error memory leak
[2010-08-11] - Version 0.8.5
* Fixed build on 5.4 (patch from Felipe Pena)
[2010-08-01] - Version 0.8.2
* Fixed shared build
[2010-08-01] - Version 0.8.1
* Fixed build on 5.3 (patch from Felipe Pena)
* Allow compilation against LibXL 2.4.3k
* Added ExcelSheet::setProtect(), ExcelSheet::protect() to set/get sheet protection
* Added ExcelSheet::setPrintHeaders() to set printability of column/row headers
* Added ExcelSheet::setCellFormat() method (LibXL 2.4.3k+) to set a cell format
* Added ExcelBook::getAllFormats() method (LibXL 2.4.3k+) to get a list of all document formats
[2010-08-01] - Version 0.8
* Initial Release