aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/openpyxl/chart/series_factory.py
diff options
context:
space:
mode:
Diffstat (limited to '.venv/lib/python3.12/site-packages/openpyxl/chart/series_factory.py')
-rw-r--r--.venv/lib/python3.12/site-packages/openpyxl/chart/series_factory.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/openpyxl/chart/series_factory.py b/.venv/lib/python3.12/site-packages/openpyxl/chart/series_factory.py
new file mode 100644
index 00000000..90b368d9
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/openpyxl/chart/series_factory.py
@@ -0,0 +1,41 @@
+# Copyright (c) 2010-2024 openpyxl
+
+from .data_source import NumDataSource, NumRef, AxDataSource
+from .reference import Reference
+from .series import Series, XYSeries, SeriesLabel, StrRef
+from openpyxl.utils import rows_from_range, quote_sheetname
+
+
+def SeriesFactory(values, xvalues=None, zvalues=None, title=None, title_from_data=False):
+ """
+ Convenience Factory for creating chart data series.
+ """
+
+ if not isinstance(values, Reference):
+ values = Reference(range_string=values)
+
+ if title_from_data:
+ cell = values.pop()
+ title = u"{0}!{1}".format(values.sheetname, cell)
+ title = SeriesLabel(strRef=StrRef(title))
+ elif title is not None:
+ title = SeriesLabel(v=title)
+
+ source = NumDataSource(numRef=NumRef(f=values))
+ if xvalues is not None:
+ if not isinstance(xvalues, Reference):
+ xvalues = Reference(range_string=xvalues)
+ series = XYSeries()
+ series.yVal = source
+ series.xVal = AxDataSource(numRef=NumRef(f=xvalues))
+ if zvalues is not None:
+ if not isinstance(zvalues, Reference):
+ zvalues = Reference(range_string=zvalues)
+ series.zVal = NumDataSource(NumRef(f=zvalues))
+ else:
+ series = Series()
+ series.val = source
+
+ if title is not None:
+ series.title = title
+ return series