Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/openpyxl/chartsheet/chartsheet.py: 57%
69 statements
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
1# Copyright (c) 2010-2022 openpyxl
3from weakref import ref
5from openpyxl.descriptors import Typed, Set, Alias
6from openpyxl.descriptors.excel import ExtensionList
7from openpyxl.descriptors.serialisable import Serialisable
8from openpyxl.drawing.spreadsheet_drawing import (
9 AbsoluteAnchor,
10 SpreadsheetDrawing,
11)
12from openpyxl.worksheet.page import (
13 PageMargins,
14 PrintPageSetup
15)
16from openpyxl.packaging.relationship import Relationship, RelationshipList
17from openpyxl.worksheet.drawing import Drawing
18from openpyxl.worksheet.header_footer import HeaderFooter
19from openpyxl.workbook.child import _WorkbookChild
20from openpyxl.xml.constants import SHEET_MAIN_NS, REL_NS
22from .relation import DrawingHF, SheetBackgroundPicture
23from .properties import ChartsheetProperties
24from .protection import ChartsheetProtection
25from .views import ChartsheetViewList
26from .custom import CustomChartsheetViews
27from .publish import WebPublishItems
30class Chartsheet(_WorkbookChild, Serialisable):
32 tagname = "chartsheet"
33 _default_title = "Chart"
34 _rel_type = "chartsheet"
35 _path = "/xl/chartsheets/sheet{0}.xml"
36 mime_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml"
38 sheetPr = Typed(expected_type=ChartsheetProperties, allow_none=True)
39 sheetViews = Typed(expected_type=ChartsheetViewList)
40 sheetProtection = Typed(expected_type=ChartsheetProtection, allow_none=True)
41 customSheetViews = Typed(expected_type=CustomChartsheetViews, allow_none=True)
42 pageMargins = Typed(expected_type=PageMargins, allow_none=True)
43 pageSetup = Typed(expected_type=PrintPageSetup, allow_none=True)
44 drawing = Typed(expected_type=Drawing, allow_none=True)
45 drawingHF = Typed(expected_type=DrawingHF, allow_none=True)
46 picture = Typed(expected_type=SheetBackgroundPicture, allow_none=True)
47 webPublishItems = Typed(expected_type=WebPublishItems, allow_none=True)
48 extLst = Typed(expected_type=ExtensionList, allow_none=True)
49 sheet_state = Set(values=('visible', 'hidden', 'veryHidden'))
50 headerFooter = Typed(expected_type=HeaderFooter)
51 HeaderFooter = Alias('headerFooter')
53 __elements__ = (
54 'sheetPr', 'sheetViews', 'sheetProtection', 'customSheetViews',
55 'pageMargins', 'pageSetup', 'headerFooter', 'drawing', 'drawingHF',
56 'picture', 'webPublishItems')
58 __attrs__ = ()
60 def __init__(self,
61 sheetPr=None,
62 sheetViews=None,
63 sheetProtection=None,
64 customSheetViews=None,
65 pageMargins=None,
66 pageSetup=None,
67 headerFooter=None,
68 drawing=None,
69 drawingHF=None,
70 picture=None,
71 webPublishItems=None,
72 extLst=None,
73 parent=None,
74 title="",
75 sheet_state='visible',
76 ):
77 super(Chartsheet, self).__init__(parent, title)
78 self._charts = []
79 self.sheetPr = sheetPr
80 if sheetViews is None:
81 sheetViews = ChartsheetViewList()
82 self.sheetViews = sheetViews
83 self.sheetProtection = sheetProtection
84 self.customSheetViews = customSheetViews
85 self.pageMargins = pageMargins
86 self.pageSetup = pageSetup
87 if headerFooter is not None:
88 self.headerFooter = headerFooter
89 self.drawing = Drawing("rId1")
90 self.drawingHF = drawingHF
91 self.picture = picture
92 self.webPublishItems = webPublishItems
93 self.sheet_state = sheet_state
96 def add_chart(self, chart):
97 chart.anchor = AbsoluteAnchor()
98 self._charts.append(chart)
101 def to_tree(self):
102 self._drawing = SpreadsheetDrawing()
103 self._drawing.charts = self._charts
104 tree = super(Chartsheet, self).to_tree()
105 if not self.headerFooter:
106 el = tree.find('headerFooter')
107 tree.remove(el)
108 tree.set("xmlns", SHEET_MAIN_NS)
109 return tree