| Version | Message |
| 2.0.2 |
- Feature: insertImageOpt($row, $col, $path, $options) adds pixel-precise x_offset / y_offset within the anchor cell, scale via width/height, a "don't move or size with cells" anchor mode, plus mouseover tip, alt text (description / decorative) and a hyperlink overlay. Object positioning is exposed through new Excel::OBJECT_POSITION_* constants. The original insertImage() signature is untouched (#357 / #437 / #473 / #297 / #449). - Feature: insertDynamicFormula() and insertDynamicArrayFormula() emit the t="array" + ref-range XML that Excel 365 dynamic array functions (UNIQUE, FILTER, SORT, SEQUENCE, XLOOKUP, etc.) require, which insertFormula() does not produce (#503). - Feature: outlineSettings(bool $visible = true, bool $below = true, bool $right = true, bool $autoStyle = false) configures worksheet outline (grouping) display (#540). - Fix: PHP true/false passed to writeSheet / data now writes a real boolean cell (xlsx type="b") via worksheet_write_boolean; previously bool fell through type_writer() silently and the cell was emitted as blank (#543). |
| 2.0.1 |
- Fix: insertDate / insertText with $format string now caches each distinct format on its own cache slot; previously ZEND_STRL on a zend_string flexible-array key collapsed every format into one entry, so the first format won and every subsequent call returned the wrong cached format (#552 / #548 / #544). - Fix: format_copy() now carries font_name (and font_scheme / has_font / has_dxf_font), so a Format resource passed alongside a num-format string keeps the caller's font() instead of falling back to Calibri (#545 / #472). - Fix: data-validation inline list now rejects with an exception when the joined CSV exceeds Excel's 255-character spec limit, instead of overflowing libxlsxwriter's fixed-size buffer (#486 / #530 / #546). - Fix: header() called after data() throws instead of silently overwriting the first data row (#535). - Fix: empty-string sheet name is rejected up-front instead of producing an xlsx that Excel can't open (#528). - Fix: outline-level warnings in setColumn / setRow / defaultRowOptions use %ld instead of %d so the build no longer fails on Alpine 3.22 + gcc 14 hardening defaults (#556). - Build: tests + examples now parse on PHP 7.0 (the declared minimum); CI matrix expanded to PHP 7.0-7.3 on ubuntu-22.04 (#565). - Build: composer.json declares download-url-method=pre-packaged-source so `pie install viest/xlswriter` fetches the self-contained xlswriter-(version).tgz attached to the GitHub release instead of the submodule-less packagist zipball. |
| 2.0.0 |
- Refactor: replaced libxlsxio dependency with the in-tree libxlsxreader (PHP-agnostic C library, lives under library/libxlsxreader/). - Reader: shared-strings table now supports both FULL and STREAMING modes; FSM-driven worksheet parser with 64KB XML buffer; honors 1900 vs 1904 date systems via workbook.xml. - Reader: PHP API (openFile/openSheet/nextRow/nextCellCallback/getSheetData/setType/setGlobalType/setSkipRows/putCSV/putCSVCallback) is fully backward compatible. - Reader: surface sheet-level metadata — getMergedCells, getHyperlinks, getSheetProtection, getRowOptions/getColumnOptions, getDefaultRowHeight/getDefaultColumnWidth, getDefinedNames, sheetListWithMeta. - Reader: surface page setup, rich-text runs, comments, charts, and conditional formats — getPageSetup, nextRowRich, iterateImages, iterateComments, iterateCharts, getConditionalFormats. - Reader: full formula attributes (next-row-with-formula), data validations (getDataValidations), autofilter (getAutoFilter); new static helper Excel::getFormulaAst() for tokenizing formulas without evaluation. - Reader: getStyleFormat resolves a style id to a rich array of font/fill/border/alignment/protection. - Writer: conditional formats (Vtiful\Kernel\ConditionalFormat + conditionalFormatCell/Range). - Writer: Excel tables (Vtiful\Kernel\Table + addTable). - Writer: page setup — setHeader/setFooter, repeatRows/repeatColumns, printArea, horizontalPageBreaks/verticalPageBreaks, fitToPages, setTabColor. - Writer: workbook properties — setProperties, setCustomProperty. - Writer: defined names — defineName (workbook- and sheet-scoped). - Writer: insertCommentOpt, insertImageBuffer, setBackgroundImage/Buffer, insertRichText. - Format: borderColorOfTheFourSides, borderOfTheFourSides, indent, rotation, locked/unlocked/hidden cell protection. - Fix: setBackgroundImage / setBackgroundImageBuffer now bundle the referenced media inside the xlsx (the sheet's picture relationship pointed at a media file that was never written). - Fix: setHeader/setFooter with image_left/image_center/image_right options now produces a valid xlsx (header VML drawing and content-type registration were missing, making the output unopenable). - New constants: Excel::COMMENT_DISPLAY_DEFAULT / HIDDEN / VISIBLE so insertCommentOpt(['visible' => …]) callers don't have to guess libxlsxwriter's lxw_comment_display enum. - Build: feature-flagged reader (--disable-reader produces a write-only build); minizip is shared between writer and reader. - Update libxlsxwriter from 1.1.3 to 1.1.6. |
| 1.5.8 |
- Fix: insertDate format. - Feat: format rotation. |
| 1.5.7 | - Fix: insertDate memory leak. |
| 1.5.6 | - Fix: format resource memory leak. |
| 1.5.5 | - Feat: static built. |
| 1.5.4 | - Fix: PACKED array on PHP 8.2. |
| 1.5.3 |
- Feat: Print scale. - Feat: Border color. - Fix: PACKED array on PHP 8.2. |
| 1.5.2 |
- Fix: Write failure on data reference. - Fix: String is not zero-terminatedpage. |
| 1.5.1 | - Feat customize to enable or disable zip64. |
| 1.5.0 |
- Feat set current line. - Feat get current line. - Feat rich string. |
| 1.4.0 |
- Fix disable reader build failed. - Fix insertDate use curtom format segmentation fault. - Feat custom free resource. - Feat writer validation. - Feat writer data validation can be applied to a single cell or a range of cells. - Feat reader add file path in open file exception message. - Feat exit worksheet. - Feat set paper. - Feat set margins. - Build read module is enabled by default. - Perfect exception message. - Compatible PHP 8.1 API. - Destructive rename method setPrintedLandscape to setLandscape - Destructive rename method setPrintedPortrait to setPortrait |
| 1.3.7 |
- Fix IBM s390x. - Fix header line no and sheet checkout not init line no. - Fix single instance opens multiple files, but the file handle is not released. - Feat worksheet printed. - Feat worksheet hidden. - Feat workbook custom first worksheet. - Feat custom skip hidden rows. - Feat skip empty rows. - Feat set global type. - Feat url text and tool tip. - Feat work sheet protection. - Helper xlswriter_get_version and xlswriter_get_author |
| 1.3.6 |
- Fix musllibc. - Fix null in cell callback. - Feat cell comment. - Feat timestampFromDateDouble static method. - Feat Check for existence before opening file. |
| 1.3.5 |
- Feat activate sheet. - Feat mergeCells type writer. |
| 1.3.4.1 |
- Feat directory not exist error change to exception. - Windows full function support. |
| 1.3.4 |
- FEAT header support custom format. - FEAT putcsv custom delimiter. - FEAT ead skip cells,rows,empty value. - FIX read data method, the offset of the array index and the row of the cell. - FIX insertDate leaked. |
| 1.3.3.2 | - FIX free up stale sheets. |
| 1.3.3.1 | - FIX merge cells. |
| 1.3.3 |
- FEAT mergeCells and insertFormula support format. - FEAT put csv with callback. - FEAT global default format. - FIX READ turning data into custom types. |
| 1.3.2 |
- FEAT display or hide screen and print gridlines. - FEAT worksheet zoom. - FEAT data method is written by default from the file header. - FEAT returns null if the type is specified and the cell is empty. - FEAT sheet list. - FEAT xlsx to csv. |
| 1.3.1 |
- FEAT freeze panes - FEAT set font - Refactor format background |
| 1.3.0 |
- FEAT read numeric - FEAT column index from string and string from column index |
| 1.2.9 |
- FEAT read skip empty cell - FEAT read skip empty row - FEAT read data with type array index - FEAT read global cell data type - FEAT read new read handler, nextCallback |
| 1.2.8 |
- FEAT insert date. - FEAT read data with type - FEAT work book is not initialized exception - FIX: minizip multiple definition |
| 1.2.7 |
- FEAT read xlsx file. - FIX multiple file segmentation fault. |
| 1.2.6 |
- FIX CentOS6 Build. - FIX InsertText memory leaks. |
| 1.2.5 |
- FEAT cells background color. - FEAT checkout sheet. - FEAT format new font size. - FEAT format new strikeout. - FEAT insertText support resource format. |
| 1.2.4 |
- FEAT format multiple style overlays. - FEAT format text color. - FEAT image scale. - FEAT chart. |