/usr/lib/python2.7/dist-packages/openpyxl/worksheet/copier.py is in python-openpyxl 2.4.9-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | from __future__ import absolute_import
# Copyright (c) 2010-2017 openpyxl
#standard lib imports
from copy import copy
#openpyxl imports
from openpyxl.comments import Comment
from openpyxl.worksheet import Worksheet
class WorksheetCopy(object):
"""
Copy the values, styles, dimensions and merged cells from one worksheet
to another within the same workbook.
"""
def __init__(self, source_worksheet, target_worksheet):
self.source = source_worksheet
self.target = target_worksheet
self._verify_resources()
def _verify_resources(self):
if (not isinstance(self.source, Worksheet)
and not isinstance(self.target, Worksheet)):
raise TypeError("Can only copy worksheets")
if self.source is self.target:
raise ValueError("Cannot copy a worksheet to itself")
if self.source.parent != self.target.parent:
raise ValueError('Cannot copy between worksheets from different workbooks')
def copy_worksheet(self):
self._copy_cells()
self._copy_dimensions()
self.target.sheet_format = copy(self.source.sheet_format)
self.target.sheet_properties = copy(self.source.sheet_properties)
self.target._merged_cells = copy(self.source._merged_cells)
def _copy_cells(self):
for (row, col), source_cell in self.source._cells.items():
target_cell = self.target.cell(column=col, row=row)
target_cell._value = source_cell._value
target_cell.data_type = source_cell.data_type
if source_cell.has_style:
target_cell._style = copy(source_cell._style)
if source_cell.hyperlink:
target_cell._hyperlink = copy(source_cell.hyperlink)
if source_cell.comment:
target_cell.comment = copy(source_cell.comment)
def _copy_dimensions(self):
for attr in ('row_dimensions', 'column_dimensions'):
src = getattr(self.source, attr)
target = getattr(self.target, attr)
for key, dim in src.items():
target[key] = copy(dim)
target[key].worksheet = self.target
|