def write_data(self, archive): """Write the various xml files into the zip archive.""" # cleanup all worksheets archive.writestr(ARC_CONTENT_TYPES, write_content_types(self.workbook)) archive.writestr(ARC_ROOT_RELS, write_root_rels(self.workbook)) archive.writestr(ARC_WORKBOOK_RELS, write_workbook_rels(self.workbook)) archive.writestr(ARC_APP, write_properties_app(self.workbook)) archive.writestr(ARC_CORE, write_properties_core(self.workbook.properties)) if self.workbook.loaded_theme: archive.writestr(ARC_THEME, self.workbook.loaded_theme) else: archive.writestr(ARC_THEME, write_theme()) archive.writestr(ARC_STYLE, self.style_writer.write_table()) archive.writestr(ARC_WORKBOOK, write_workbook(self.workbook)) if self.workbook.vba_archive: vba_archive = self.workbook.vba_archive for name in vba_archive.namelist(): for s in ARC_VBA: if name.startswith(s): archive.writestr(name, vba_archive.read(name)) break self._write_string_table(archive) self._write_worksheets(archive, self.style_writer)
def write_data(self, archive, as_template=False): """Write the various xml files into the zip archive.""" # cleanup all worksheets archive.writestr( ARC_CONTENT_TYPES, write_content_types(self.workbook, as_template=as_template)) archive.writestr(ARC_ROOT_RELS, write_root_rels(self.workbook)) archive.writestr(ARC_WORKBOOK_RELS, write_workbook_rels(self.workbook)) archive.writestr(ARC_APP, write_properties_app(self.workbook)) archive.writestr(ARC_CORE, write_properties(self.workbook.properties)) if self.workbook.loaded_theme: archive.writestr(ARC_THEME, self.workbook.loaded_theme) else: archive.writestr(ARC_THEME, write_theme()) archive.writestr(ARC_WORKBOOK, write_workbook(self.workbook)) if self.workbook.vba_archive: vba_archive = self.workbook.vba_archive for name in vba_archive.namelist(): for s in ARC_VBA: if match(s, name): archive.writestr(name, vba_archive.read(name)) break for sheet in self.workbook.worksheets: sheet.conditional_formatting._save_styles(self.workbook) self._write_worksheets(archive) self._write_string_table(archive) self._write_external_links(archive) archive.writestr(ARC_STYLE, self.style_writer.write_table())
def write_data(self, archive, as_template=False): """Write the various xml files into the zip archive.""" # cleanup all worksheets archive.writestr(ARC_CONTENT_TYPES, write_content_types(self.workbook, as_template=as_template)) archive.writestr(ARC_ROOT_RELS, write_root_rels(self.workbook)) archive.writestr(ARC_WORKBOOK_RELS, write_workbook_rels(self.workbook)) archive.writestr(ARC_APP, write_properties_app(self.workbook)) archive.writestr(ARC_CORE, write_properties(self.workbook.properties)) if self.workbook.loaded_theme: archive.writestr(ARC_THEME, self.workbook.loaded_theme) else: archive.writestr(ARC_THEME, write_theme()) archive.writestr(ARC_WORKBOOK, write_workbook(self.workbook)) if self.workbook.vba_archive: vba_archive = self.workbook.vba_archive for name in vba_archive.namelist(): for s in ARC_VBA: if match(s, name): archive.writestr(name, vba_archive.read(name)) break self._write_charts(archive) self._write_images(archive) self._write_worksheets(archive) self._write_string_table(archive) self._write_external_links(archive) archive.writestr(ARC_STYLE, self.style_writer.write_table())
def test_write_workbook(): wb = Workbook() content = write_workbook(wb) reference_file = os.path.join(DATADIR, 'writer', 'expected', 'workbook.xml') with open(reference_file) as expected: diff = compare_xml(content, expected.read()) assert diff is None, diff
def write_data(self): """Write the various xml files into the zip archive.""" # cleanup all worksheets archive = self._archive archive.writestr(ARC_ROOT_RELS, write_root_rels(self.workbook)) props = ExtendedProperties() archive.writestr(ARC_APP, tostring(props.to_tree())) archive.writestr(ARC_CORE, tostring(self.workbook.properties.to_tree())) if self.workbook.loaded_theme: archive.writestr(ARC_THEME, self.workbook.loaded_theme) else: archive.writestr(ARC_THEME, write_theme()) self._write_worksheets() self._write_chartsheets() self._write_images() self._write_charts() self._archive.writestr( ARC_SHARED_STRINGS, write_string_table(self.workbook.shared_strings)) self._write_external_links() stylesheet = write_stylesheet(self.workbook) archive.writestr(ARC_STYLE, tostring(stylesheet)) archive.writestr(ARC_WORKBOOK, write_workbook(self.workbook)) archive.writestr(ARC_WORKBOOK_RELS, write_workbook_rels(self.workbook)) self._merge_vba() self.manifest._write(archive, self.workbook)
def write_data(self, archive): """Write the various xml files into the zip archive.""" # cleanup all worksheets shared_string_table = self._write_string_table(archive) archive.writestr(ARC_CONTENT_TYPES, write_content_types(self.workbook)) if not self.workbook.vba_archive: archive.writestr(ARC_ROOT_RELS, write_root_rels(self.workbook)) archive.writestr(ARC_WORKBOOK_RELS, write_workbook_rels(self.workbook)) archive.writestr(ARC_APP, write_properties_app(self.workbook)) archive.writestr(ARC_CORE, write_properties_core(self.workbook.properties)) if self.workbook.loaded_theme: archive.writestr(ARC_THEME, self.workbook.loaded_theme) else: archive.writestr(ARC_THEME, write_theme()) archive.writestr(ARC_STYLE, self.style_writer.write_table()) archive.writestr(ARC_WORKBOOK, write_workbook(self.workbook)) if self.workbook.vba_archive: vba_archive = self.workbook.vba_archive for name in vba_archive.namelist(): for s in ARC_VBA: if name.startswith(s): archive.writestr(name, vba_archive.read(name)) break self._write_worksheets(archive, shared_string_table, self.style_writer)
def write_data(self): """Write the various xml files into the zip archive.""" # cleanup all worksheets archive = self._archive archive.writestr(ARC_ROOT_RELS, write_root_rels(self.workbook)) props = ExtendedProperties() archive.writestr(ARC_APP, tostring(props.to_tree())) archive.writestr(ARC_CORE, tostring(self.workbook.properties.to_tree())) if self.workbook.loaded_theme: archive.writestr(ARC_THEME, self.workbook.loaded_theme) else: archive.writestr(ARC_THEME, write_theme()) self._write_worksheets() self._write_chartsheets() self._write_images() self._write_charts() self._archive.writestr(ARC_SHARED_STRINGS, write_string_table(self.workbook.shared_strings)) self._write_external_links() stylesheet = write_stylesheet(self.workbook) archive.writestr(ARC_STYLE, tostring(stylesheet)) archive.writestr(ARC_WORKBOOK, write_workbook(self.workbook)) archive.writestr(ARC_WORKBOOK_RELS, write_workbook_rels(self.workbook)) self._merge_vba() self.manifest._write(archive, self.workbook)
def test_write_auto_filter(): wb = Workbook() ws = wb.worksheets[0] ws.cell("F42").value = "hello" ws.auto_filter = "A1:F1" content = write_worksheet(ws, {"hello": 0}, {}) assert_equals_file_content(os.path.join(DATADIR, "writer", "expected", "sheet1_auto_filter.xml"), content) content = write_workbook(wb) assert_equals_file_content(os.path.join(DATADIR, "writer", "expected", "workbook_auto_filter.xml"), content)
def test_write_auto_filter(): wb = Workbook() ws = wb.worksheets[0] ws.cell('F42').value = 'hello' ws.auto_filter = 'A1:F1' content = write_worksheet(ws, {'hello': 0}, {}) assert_equals_file_content(os.path.join(DATADIR, 'writer', 'expected', \ 'sheet1_auto_filter.xml'), content) content = write_workbook(wb) assert_equals_file_content(os.path.join(DATADIR, 'writer', 'expected', \ 'workbook_auto_filter.xml'), content)
def test_write_auto_filter(): wb = Workbook() ws = wb.worksheets[0] ws.cell('F42').value = 'hello' ws.auto_filter = 'A1:F1' content = write_worksheet(ws, {'hello': 0}, {}) reference_file = os.path.join(DATADIR, 'writer', 'expected', 'sheet1_auto_filter.xml') with open(reference_file) as expected: diff = compare_xml(content, expected.read()) assert diff is None content = write_workbook(wb) reference_file = os.path.join(DATADIR, 'writer', 'expected', 'workbook_auto_filter.xml') with open(reference_file) as expected: diff = compare_xml(content, expected.read()) assert diff is None, diff
def write_data(self, archive): """Write the various xml files into the zip archive.""" # cleanup all worksheets shared_string_table = self._write_string_table(archive) archive.writestr(ARC_CONTENT_TYPES, write_content_types(self.workbook)) archive.writestr(ARC_ROOT_RELS, write_root_rels(self.workbook)) archive.writestr(ARC_WORKBOOK_RELS, write_workbook_rels(self.workbook)) archive.writestr(ARC_APP, write_properties_app(self.workbook)) archive.writestr(ARC_CORE, write_properties_core(self.workbook.properties)) archive.writestr(ARC_THEME, write_theme()) archive.writestr(ARC_STYLE, self.style_writer.write_table()) archive.writestr(ARC_WORKBOOK, write_workbook(self.workbook)) self._write_worksheets(archive, shared_string_table, self.style_writer)
def test_write_auto_filter(): wb = Workbook() ws = wb.worksheets[0] ws.cell('F42').value = 'hello' ws.auto_filter.ref = 'A1:F1' content = write_worksheet(ws, {'hello': 0}, {}) reference_file = os.path.join(DATADIR, 'writer', 'expected', 'sheet1_auto_filter.xml') with open(reference_file) as expected: diff = compare_xml(content, expected.read()) assert diff is None content = write_workbook(wb) reference_file = os.path.join(DATADIR, 'writer', 'expected', 'workbook_auto_filter.xml') with open(reference_file) as expected: diff = compare_xml(content, expected.read()) assert diff is None, diff
def test_write_auto_filter_filter_column(): wb = Workbook() ws = wb.worksheets[0] ws.cell('F42').value = 'hello' ws.auto_filter.ref = 'A1:F1' ws.auto_filter.add_filter_column(0, ["0"], blank=True) strings = create_string_table(wb) content = write_worksheet(ws, strings, {}) reference_file = os.path.join(DATADIR, 'writer', 'expected', 'sheet1_auto_filter_filter_column.xml') with open(reference_file) as expected: diff = compare_xml(content, expected.read()) assert diff is None content = write_workbook(wb) reference_file = os.path.join(DATADIR, 'writer', 'expected', 'workbook_auto_filter.xml') with open(reference_file) as expected: diff = compare_xml(content, expected.read()) assert diff is None, diff
def test_write_auto_filter_sort_condition(): wb = Workbook() ws = wb.worksheets[0] ws.cell('A1').value = 'header' ws.cell('A2').value = 1 ws.cell('A3').value = 0 ws.auto_filter.ref = 'A2:A3' ws.auto_filter.add_sort_condition('A2:A3', descending=True) content = write_worksheet(ws, {'header': 0}, {}) reference_file = os.path.join(DATADIR, 'writer', 'expected', 'sheet1_auto_filter_sort_condition.xml') with open(reference_file) as expected: diff = compare_xml(content, expected.read()) assert diff is None content = write_workbook(wb) reference_file = os.path.join(DATADIR, 'writer', 'expected', 'workbook_auto_filter.xml') with open(reference_file) as expected: diff = compare_xml(content, expected.read())
def write_data(self, archive, as_template=False): """Write the various xml files into the zip archive.""" # cleanup all worksheets archive.writestr(ARC_ROOT_RELS, write_root_rels(self.workbook)) props = ExtendedProperties() archive.writestr(ARC_APP, tostring(props.to_tree())) archive.writestr(ARC_CORE, tostring(self.workbook.properties.to_tree())) if self.workbook.loaded_theme: archive.writestr(ARC_THEME, self.workbook.loaded_theme) else: archive.writestr(ARC_THEME, write_theme()) self._write_charts(archive) self._write_images(archive) self._write_worksheets(archive) self._write_chartsheets(archive) self._write_string_table(archive) self._write_external_links(archive) stylesheet = write_stylesheet(self.workbook) archive.writestr(ARC_STYLE, tostring(stylesheet)) archive.writestr(ARC_WORKBOOK, write_workbook(self.workbook)) archive.writestr(ARC_WORKBOOK_RELS, write_workbook_rels(self.workbook)) if self.workbook.vba_archive: vba_archive = self.workbook.vba_archive for name in set(vba_archive.namelist()) - self.vba_modified: for s in ARC_VBA: if match(s, name): archive.writestr(name, vba_archive.read(name)) break exts = [] for n in archive.namelist(): if "media" in n: exts.append(n) manifest = write_content_types(self.workbook, as_template=as_template, exts=exts) archive.writestr(ARC_CONTENT_TYPES, tostring(manifest.to_tree()))
def test_write_workbook(): wb = Workbook() content = write_workbook(wb) assert_equals_file_content(os.path.join(DATADIR, "writer", "expected", "workbook.xml"), content)
def test_write_workbook(): wb = Workbook() content = write_workbook(wb) assert_equals_file_content(os.path.join(DATADIR, 'writer', 'expected', \ 'workbook.xml'), content)