40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
|
# encoding: utf-8
|
||
|
|
||
|
"""
|
||
|
Embedded Package part objects, including EmbeddedPackagePart and
|
||
|
EmbeddedXlsxPart
|
||
|
"""
|
||
|
|
||
|
from __future__ import absolute_import, print_function, unicode_literals
|
||
|
|
||
|
from ..opc.constants import CONTENT_TYPE as CT
|
||
|
from ..opc.package import Part
|
||
|
|
||
|
|
||
|
class EmbeddedPackagePart(Part):
|
||
|
"""
|
||
|
A distinct OPC package, e.g. an Excel file, stored (embedded) in the main
|
||
|
package as a part having partname like
|
||
|
``ppt/embeddings/Microsoft_Excel_Sheet1.xlsx``.
|
||
|
"""
|
||
|
|
||
|
|
||
|
class EmbeddedXlsxPart(EmbeddedPackagePart):
|
||
|
"""
|
||
|
An Excel file stored in a part, typically used as a data source for
|
||
|
a chart.
|
||
|
"""
|
||
|
|
||
|
partname_template = "/ppt/embeddings/Microsoft_Excel_Sheet%d.xlsx"
|
||
|
|
||
|
@classmethod
|
||
|
def new(cls, xlsx_blob, package):
|
||
|
"""
|
||
|
Return a new |EmbeddedXlsxPart| instance added to *package* and
|
||
|
containing *xlsx_blob*.
|
||
|
"""
|
||
|
partname = package.next_partname(cls.partname_template)
|
||
|
content_type = CT.SML_SHEET
|
||
|
xlsx_part = cls(partname, content_type, xlsx_blob, package)
|
||
|
return xlsx_part
|