Skip to content

wxAutoExcel 2.6.0 - #19

Merged
PBfordev merged 22 commits into
masterfrom
v2.6.0
Oct 25, 2026
Merged

PBfordev merged 22 commits into
masterfrom
v2.6.0

Conversation

@PBfordev

Copy link
Copy Markdown
Owner

Version 2.6.0: fixes of wrappers found by new tests, additions making some classes reachable, and much wider test coverage.

Library changes

See docs/changelog.md for the details. In short:

  • Fixed wxExcelSeries::ErrorBar() returning false on success, and added overloads taking ranges or variants for custom error bars.
  • Fixed wrong types of wxExcelWorksheetView::GetSheet(), wxExcelIconSetCondition::GetIconSet()/SetIconSet(), wxExcelWorkbook::GetIconSets(XlIconSet), and wxExcelChart::FullSeriesCollection().
  • Fixed the values of XlIconSet enumerators, which were off by one from xl4Arrows on.
  • Fixed wxExcelRange::ApplyNames() ignoring the given names and passing False as IgnoreRelativeAbsolute by default.
  • Fixed the arguments of wxExcelOLEObjects::Add(), which lacked the top.
  • Added GetFill() of chart elements, wxExcelGradientStops/wxExcelGradientStop, wxExcelWorkbook::GetIconSets(), wxExcelAllowEditRange::SetRange(), and wxExcelListColumn::GetListDataFormat().

Several of these change the API, hence the new minor version.

Tests

  • The getter and setter smoke tests cover about 170 classes instead of 86.
  • New behaviour tests of windows and panes, protection, fills and gradients, error bars and trendlines, chart fills, icon sets, shapes of all kinds and their formats, form controls, OLE objects, workbook objects, and many range, workbook, and application methods.
  • All 229 test cases pass locally with MSVC 2026 and MSYS2 UCRT64 (DLL and static, Debug and Release); CI only builds them, as the runners have no Excel.

Also removes the GenerateEnums utility in util, which is not needed anymore.

🤖 Generated with Claude Code

PBfordev and others added 22 commits October 25, 2026 20:50
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Excel returns Empty from Series.ErrorBar, which the wrapper rejected
as an unexpected result type, so it reported a failure even though the
error bars were added.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Excel was checked to return the category names as an array of strings
also for categories set to or taken from a range, including dates and
numbers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Custom error bars could not be really used, because ErrorBar() accepted
only numbers as the amounts. Add overloads taking the amounts as Ranges
or wxVariants, which can contain arrays or strings with array constants
or references, as Excel accepts.

Also document that Excel requires both amounts for custom error bars.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
WorksheetView.Sheet returns the worksheet, not its name, so getting it
as a string always failed. Return wxExcelWorksheet instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
IconSetCondition.IconSet is an IconSet object, not the IconSets
collection, so the methods of the returned wxExcelIconSets failed or
returned icons as icon sets. Use wxExcelIconSet for the getter and the
setter.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Workbook.IconSets(index) returns an IconSet object, not the IconSets
collection, so return wxExcelIconSet for it, which can be set to an
icon set conditional format. Also add the overload without the index
returning the collection, which could not be obtained before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add 47 classes to the getter and setter smoke tests: windows and their
panes and views, worksheet protection and the ranges editable on
protected worksheets, chart elements (error bars, trendlines, axis tick
labels and gridlines, legend entries, data tables, walls, up and down
bars, and lines), sparklines, and the parts of data bar and icon set
conditional formats.

The getters and setters which Excel fails to use in the state the tests
create, also in VBA, are excluded with the reason.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Test splitting, freezing, and scrolling windows and their panes,
changing their zoom, view, and displayed elements, and the worksheet
views. Test protecting a worksheet with the given operations allowed,
the ranges editable on protected worksheets and their users, the
methods of wxExcelFillFormat setting solid, patterned, gradient,
texture, and picture fills, and changing and deleting error bars and
trendlines of different types.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wxExcelChartFillFormat and wxExcelChartColorFormat could not be
obtained from any object. Add GetFill() returning the ChartFillFormat
to the chart elements which have the Fill property: chart and plot
areas, chart and axis titles, display unit labels, legends and their
keys, series and their points, data labels, floors, walls, and up and
down bars. Also add wxExcelChartColorFormat::SetSchemeColor(), as the
SchemeColor property is read/write.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Chart.FullSeriesCollection returns a FullSeriesCollection, which also
contains the filtered series and lacks the methods of SeriesCollection
such as NewSeries, so return wxExcelFullSeriesCollection, which could
not be obtained before.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AllowEditRange.Range is read/write. The range must be set by
reference, setting it by value has no effect.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Wrap the Office GradientStops collection and GradientStop object and
enable wxExcelFillFormat::GetGradientStops(), which was commented out
because these classes did not exist, so the stops of gradient fills
can be inserted, changed, and deleted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The values were taken from the VBA documentation, which omits
xl3Symbols2, so the values from xl4Arrows on were off by one and
selected a different icon set than named. Use the values of Excel,
adding also the missing xl3Symbols2, xl3Stars, xl3Triangles, xl5Boxes,
and xlCustomSet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add wxExcelChartFillFormat, wxExcelChartColorFormat,
wxExcelFullSeriesCollection, wxExcelGradientStops, and
wxExcelGradientStop to the getter and setter smoke tests and test
changing the fills of chart elements, the full series collection with
a filtered series, inserting and deleting gradient stops, changing the
range of a range editable on a protected worksheet, and using an icon
set of the workbook in a conditional format.

Make the data of the line chart in the smoke tests have both up and
down bars, as Excel fails to get the bars of the kind the chart doesn't
have, which was the reason for excluding DownBars.Name.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The enumerations were generated once from the VBA documentation and are
maintained in wxAutoExcel_enums.h, so the utility is not needed anymore.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…bsolute

The names were never passed to Excel, so all the names were applied
instead of the given ones, and the default value of
ignoreRelativeAbsolute was NULL, converted to false, so false was
passed instead of leaving Excel use its default, which is True.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The height was the third argument instead of the last one and the top
was missing, so the position of the added object could not be given.
Use the order of Excel, the same as of wxExcelShapes::AddOLEObject().

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wxExcelListDataFormat could not be obtained from any object.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add 34 classes to the getter and setter smoke tests: range gradients
and their color stops, worksheet custom properties, cell errors and
error checking options, multithreaded calculation, table styles and
their elements, OLE objects, list data formats, and the formats of
shapes (text frames, shadows, glows, soft edges, reflections, text
columns, paragraphs, bullets, tab stops, callouts, connectors, form
controls, nodes, text effects, and pictures).

The getters and setters which Excel fails to use in the state the tests
create, also in VBA, are excluded with the reason.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Test adding text boxes, labels, callouts, text effects, connectors,
form controls, polylines, freeforms, and pictures, and changing their
formats, effects, text frames, paragraphs, bullets, and tab stops,
aligning, distributing, scaling, and rotating shapes, range gradients,
custom properties, cell errors, multithreaded calculation, table
styles, embedded OLE objects, drawing borders around ranges, filling
data series, creating and applying names, finding row and column
differences, outlining, copying ranges as pictures, changing and
breaking links between workbooks, deleting number formats,
recalculating, converting units, custom lists, and applying data
labels.

Move the temporary picture of the fill tests to temp_files.h, to share
it with the new tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@PBfordev
PBfordev merged commit 002f43e into master Oct 25, 2026
7 checks passed
@PBfordev
PBfordev deleted the v2.6.0 branch October 25, 2026 22:02

This branch was successfully deployed

1 active deployment
github-pages — 002f43e8 Deployed Oct 25, 2026 by PBfordev via Deploy online documentation #42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant