-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reassigning chart getName to getIndex and adding a proper getName. #2991
Comments
Not without a BC break, which means a new major version release. Version 2.0 is already close to release, so it may be possible to add this feature. |
ugh, ok....I am trying to clone a chart:
however, $newChart has the same Essentially, clone the chart and change the dataseries...mainly just the data values. All I can find references to is creating new charts with new data series, but nothing to that would allow me to change existing data series. |
The omission of a |
Addresses a problem identified in issue PHPOffice#2991. Chart name is set in constructor, but there is no method to subsequently change it. This PR adds a method to do so.
@oleibman - I think the only issue with my above method is adding the cloned new object with the same Template with 5 charts, each titled:
Outs:
Because Changing Having a
|
And I just tried another method, instead of looping through the chartCollection(), I just added the new chart then just updated that specific index chart title. Tracking all the charts with
|
And surprisingly, even though all the cloned
|
Addresses a problem identified in issue #2991. Chart name is set in constructor, but there is no method to subsequently change it. This PR adds a method to do so.
### Added - Implementation of the new `TEXTBEFORE()`, `TEXTAFTER()` and `TEXTSPLIT()` Excel Functions - Implementation of the `ARRAYTOTEXT()` and `VALUETOTEXT()` Excel Functions - Support for [mitoteam/jpgraph](https://packagist.org/packages/mitoteam/jpgraph) implementation of JpGraph library to render charts added. - Charts: Add Gradients, Transparency, Hidden Axes, Rounded Corners, Trendlines, Date Axes. ### Changed - Allow variant behaviour when merging cells [Issue #3065](#3065) - Merge methods now allow an additional `$behaviour` argument. Permitted values are: - Worksheet::MERGE_CELL_CONTENT_EMPTY - Empty the content of the hidden cells (the default behaviour) - Worksheet::MERGE_CELL_CONTENT_HIDE - Keep the content of the hidden cells - Worksheet::MERGE_CELL_CONTENT_MERGE - Move the content of the hidden cells into the first cell ### Deprecated - Axis getLineProperty deprecated in favor of getLineColorProperty. - Moved majorGridlines and minorGridlines from Chart to Axis. Setting either in Chart constructor or through Chart methods, or getting either using Chart methods is deprecated. - Chart::EXCEL_COLOR_TYPE_* copied from Properties to ChartColor; use in Properties is deprecated. - ChartColor::EXCEL_COLOR_TYPE_ARGB deprecated in favor of EXCEL_COLOR_TYPE_RGB ("A" component was never allowed). - Misspelled Properties::LINE_STYLE_DASH_SQUERE_DOT deprecated in favor of LINE_STYLE_DASH_SQUARE_DOT. - Clone not permitted for Spreadsheet. Spreadsheet->copy() can be used instead. ### Removed - Nothing ### Fixed - Fix update to defined names when inserting/deleting rows/columns [Issue #3076](#3076) [PR #3077](#3077) - Fix DataValidation sqRef when inserting/deleting rows/columns [Issue #3056](#3056) [PR #3074](#3074) - Named ranges not usable as anchors in OFFSET function [Issue #3013](#3013) - Fully flatten an array [Issue #2955](#2955) [PR #2956](#2956) - cellExists() and getCell() methods should support UTF-8 named cells [Issue #2987](#2987) [PR #2988](#2988) - Spreadsheet copy fixed, clone disabled. [PR #2951](#2951) - Fix PDF problems with text rotation and paper size. [Issue #1747](#1747) [Issue #1713](#1713) [PR #2960](#2960) - Limited support for chart titles as formulas [Issue #2965](#2965) [Issue #749](#749) [PR #2971](#2971) - Add Gradients, Transparency, and Hidden Axes to Chart [Issue #2257](#2257) [Issue #2229](#2929) [Issue #2935](#2935) [PR #2950](#2950) - Chart Support for Rounded Corners and Trendlines [Issue #2968](#2968) [Issue #2815](#2815) [PR #2976](#2976) - Add setName Method for Chart [Issue #2991](#2991) [PR #3001](#3001) - Eliminate partial dependency on php-intl in StringHelper [Issue #2982](#2982) [PR #2994](#2994) - Minor changes for Pdf [Issue #2999](#2999) [PR #3002](#3002) [PR #3006](#3006) - Html/Pdf Do net set background color for cells using (default) nofill [PR #3016](#3016) - Add support for Date Axis to Chart [Issue #2967](#2967) [PR #3018](#3018) - Reconcile Differences Between Css and Excel for Cell Alignment [PR #3048](#3048) - R1C1 Format Internationalization and Better Support for Relative Offsets [Issue #1704](#1704) [PR #3052](#3052) - Minor Fix for Percentage Formatting [Issue #1929](#1929) [PR #3053](#3053)
This is:
In excel, there are three references to charts:
chartIndex - index of all charts, starting with chart1 (top left most chart on sheet1), across all sheets, ending in chartX (bottom right most chart on sheetX). Adding, deleting charts will re-index all the charts in order. In phpspreadsheet, this is represented by
$chart->getName()
chartName - above column A, there is a
name
field you can edit. In phpspreadsheet, there appears no way to get/set this value, please correct me if I am wrong.chartTitle - the visual chart title, in the chart (IE: "Annual Sales Revenue"). In phpspreadsheet, this is represented by
$chart->getTitle()->getCaptionText()
.It took me a while to get to the bottom of all this as it kept tripping me up as I kept misinterpreting the close but different meanings of these values between excel and phpspreadsheet and what represented what.
Is it possible for these phpspreadsheet object methods to be renamed to align with excel?
getName()
togetIndex()
create a new
getName()
that actually gets to the chart namegetTitle()
would stay the same.Unfortunately, its not easy to rely on the chart index, esp for an imported templates, because of adding/deleting/moving charts will reindex all of them making it challenging to know the exact chart you need to be working with. Thus adding a new proper
getName()
can allow us to tag/name a chart that we can then easily reference, the user never needs to change the name, just use it as a solid reference in order to edit/copy/duplicate/delete charts.In my case, in my template I want to be
name
a chartChart_Monthly
. Using phpspreadsheet, change its title toJanuary Sales
, then later grab/copyChart Monthly
to create a new chart titledFebruary Sales
, etc. But because I might have other charts between January & February sales, I can't easily rely on the current getName() (aka: index) to retrieve the originalJanuary
chart to copy. Also, this way, one wouldn't have to rely on tracking changing chart titles to find the original chart you wanted to copy.I know this ask might be a long shot and probably has some versioning issues to simply rename certain object methods, but I thought I would throw it out there and see.
What features do you think are causing the issue
Does an issue affect all spreadsheet file formats? If not, which formats are affected?
Which versions of PhpSpreadsheet and PHP are affected?
The text was updated successfully, but these errors were encountered: