forked from Alsan/Post_finder
venv
This commit is contained in:
@ -0,0 +1,107 @@
|
||||
# Copyright (c) 2010-2024 openpyxl
|
||||
|
||||
|
||||
from openpyxl.descriptors import Typed, Set, Alias
|
||||
from openpyxl.descriptors.excel import ExtensionList
|
||||
from openpyxl.descriptors.serialisable import Serialisable
|
||||
from openpyxl.drawing.spreadsheet_drawing import (
|
||||
AbsoluteAnchor,
|
||||
SpreadsheetDrawing,
|
||||
)
|
||||
from openpyxl.worksheet.page import (
|
||||
PageMargins,
|
||||
PrintPageSetup
|
||||
)
|
||||
from openpyxl.worksheet.drawing import Drawing
|
||||
from openpyxl.worksheet.header_footer import HeaderFooter
|
||||
from openpyxl.workbook.child import _WorkbookChild
|
||||
from openpyxl.xml.constants import SHEET_MAIN_NS, REL_NS
|
||||
|
||||
from .relation import DrawingHF, SheetBackgroundPicture
|
||||
from .properties import ChartsheetProperties
|
||||
from .protection import ChartsheetProtection
|
||||
from .views import ChartsheetViewList
|
||||
from .custom import CustomChartsheetViews
|
||||
from .publish import WebPublishItems
|
||||
|
||||
|
||||
class Chartsheet(_WorkbookChild, Serialisable):
|
||||
|
||||
tagname = "chartsheet"
|
||||
_default_title = "Chart"
|
||||
_rel_type = "chartsheet"
|
||||
_path = "/xl/chartsheets/sheet{0}.xml"
|
||||
mime_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml"
|
||||
|
||||
sheetPr = Typed(expected_type=ChartsheetProperties, allow_none=True)
|
||||
sheetViews = Typed(expected_type=ChartsheetViewList)
|
||||
sheetProtection = Typed(expected_type=ChartsheetProtection, allow_none=True)
|
||||
customSheetViews = Typed(expected_type=CustomChartsheetViews, allow_none=True)
|
||||
pageMargins = Typed(expected_type=PageMargins, allow_none=True)
|
||||
pageSetup = Typed(expected_type=PrintPageSetup, allow_none=True)
|
||||
drawing = Typed(expected_type=Drawing, allow_none=True)
|
||||
drawingHF = Typed(expected_type=DrawingHF, allow_none=True)
|
||||
picture = Typed(expected_type=SheetBackgroundPicture, allow_none=True)
|
||||
webPublishItems = Typed(expected_type=WebPublishItems, allow_none=True)
|
||||
extLst = Typed(expected_type=ExtensionList, allow_none=True)
|
||||
sheet_state = Set(values=('visible', 'hidden', 'veryHidden'))
|
||||
headerFooter = Typed(expected_type=HeaderFooter)
|
||||
HeaderFooter = Alias('headerFooter')
|
||||
|
||||
__elements__ = (
|
||||
'sheetPr', 'sheetViews', 'sheetProtection', 'customSheetViews',
|
||||
'pageMargins', 'pageSetup', 'headerFooter', 'drawing', 'drawingHF',
|
||||
'picture', 'webPublishItems')
|
||||
|
||||
__attrs__ = ()
|
||||
|
||||
def __init__(self,
|
||||
sheetPr=None,
|
||||
sheetViews=None,
|
||||
sheetProtection=None,
|
||||
customSheetViews=None,
|
||||
pageMargins=None,
|
||||
pageSetup=None,
|
||||
headerFooter=None,
|
||||
drawing=None,
|
||||
drawingHF=None,
|
||||
picture=None,
|
||||
webPublishItems=None,
|
||||
extLst=None,
|
||||
parent=None,
|
||||
title="",
|
||||
sheet_state='visible',
|
||||
):
|
||||
super().__init__(parent, title)
|
||||
self._charts = []
|
||||
self.sheetPr = sheetPr
|
||||
if sheetViews is None:
|
||||
sheetViews = ChartsheetViewList()
|
||||
self.sheetViews = sheetViews
|
||||
self.sheetProtection = sheetProtection
|
||||
self.customSheetViews = customSheetViews
|
||||
self.pageMargins = pageMargins
|
||||
self.pageSetup = pageSetup
|
||||
if headerFooter is not None:
|
||||
self.headerFooter = headerFooter
|
||||
self.drawing = Drawing("rId1")
|
||||
self.drawingHF = drawingHF
|
||||
self.picture = picture
|
||||
self.webPublishItems = webPublishItems
|
||||
self.sheet_state = sheet_state
|
||||
|
||||
|
||||
def add_chart(self, chart):
|
||||
chart.anchor = AbsoluteAnchor()
|
||||
self._charts.append(chart)
|
||||
|
||||
|
||||
def to_tree(self):
|
||||
self._drawing = SpreadsheetDrawing()
|
||||
self._drawing.charts = self._charts
|
||||
tree = super().to_tree()
|
||||
if not self.headerFooter:
|
||||
el = tree.find('headerFooter')
|
||||
tree.remove(el)
|
||||
tree.set("xmlns", SHEET_MAIN_NS)
|
||||
return tree
|
Reference in New Issue
Block a user