summaryrefslogtreecommitdiff
path: root/tablib/packages/openpyxl/workbook.py
diff options
context:
space:
mode:
Diffstat (limited to 'tablib/packages/openpyxl/workbook.py')
-rw-r--r--tablib/packages/openpyxl/workbook.py186
1 files changed, 0 insertions, 186 deletions
diff --git a/tablib/packages/openpyxl/workbook.py b/tablib/packages/openpyxl/workbook.py
deleted file mode 100644
index bbb14b6..0000000
--- a/tablib/packages/openpyxl/workbook.py
+++ /dev/null
@@ -1,186 +0,0 @@
-# file openpyxl/workbook.py
-
-# Copyright (c) 2010 openpyxl
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-#
-# @license: http://www.opensource.org/licenses/mit-license.php
-# @author: Eric Gazoni
-
-"""Workbook is the top-level container for all document information."""
-
-__docformat__ = "restructuredtext en"
-
-# Python stdlib imports
-import datetime
-import os
-
-# package imports
-from .worksheet import Worksheet
-from .writer.dump_worksheet import DumpWorksheet, save_dump
-from .writer.strings import StringTableBuilder
-from .namedrange import NamedRange
-from .style import Style
-from .writer.excel import save_workbook
-from .shared.exc import ReadOnlyWorkbookException
-
-
-class DocumentProperties(object):
- """High-level properties of the document."""
-
- def __init__(self):
- self.creator = 'Unknown'
- self.last_modified_by = self.creator
- self.created = datetime.datetime.now()
- self.modified = datetime.datetime.now()
- self.title = 'Untitled'
- self.subject = ''
- self.description = ''
- self.keywords = ''
- self.category = ''
- self.company = 'Microsoft Corporation'
-
-
-class DocumentSecurity(object):
- """Security information about the document."""
-
- def __init__(self):
- self.lock_revision = False
- self.lock_structure = False
- self.lock_windows = False
- self.revision_password = ''
- self.workbook_password = ''
-
-
-class Workbook(object):
- """Workbook is the container for all other parts of the document."""
-
- def __init__(self, optimized_write = False):
- self.worksheets = []
- self._active_sheet_index = 0
- self._named_ranges = []
- self.properties = DocumentProperties()
- self.style = Style()
- self.security = DocumentSecurity()
- self.__optimized_write = optimized_write
- self.__optimized_read = False
- self.strings_table_builder = StringTableBuilder()
-
- if not optimized_write:
- self.worksheets.append(Worksheet(self))
-
- def _set_optimized_read(self):
- self.__optimized_read = True
-
- def get_active_sheet(self):
- """Returns the current active sheet."""
- return self.worksheets[self._active_sheet_index]
-
- def create_sheet(self, index = None):
- """Create a worksheet (at an optional index).
-
- :param index: optional position at which the sheet will be inserted
- :type index: int
-
- """
-
- if self.__optimized_read:
- raise ReadOnlyWorkbookException('Cannot create new sheet in a read-only workbook')
-
- if self.__optimized_write :
- new_ws = DumpWorksheet(parent_workbook = self)
- else:
- new_ws = Worksheet(parent_workbook = self)
-
- self.add_sheet(worksheet = new_ws, index = index)
- return new_ws
-
- def add_sheet(self, worksheet, index = None):
- """Add an existing worksheet (at an optional index)."""
- if index is None:
- index = len(self.worksheets)
- self.worksheets.insert(index, worksheet)
-
- def remove_sheet(self, worksheet):
- """Remove a worksheet from this workbook."""
- self.worksheets.remove(worksheet)
-
- def get_sheet_by_name(self, name):
- """Returns a worksheet by its name.
-
- Returns None if no worksheet has the name specified.
-
- :param name: the name of the worksheet to look for
- :type name: string
-
- """
- requested_sheet = None
- for sheet in self.worksheets:
- if sheet.title == name:
- requested_sheet = sheet
- break
- return requested_sheet
-
- def get_index(self, worksheet):
- """Return the index of the worksheet."""
- return self.worksheets.index(worksheet)
-
- def get_sheet_names(self):
- """Returns the list of the names of worksheets in the workbook.
-
- Names are returned in the worksheets order.
-
- :rtype: list of strings
-
- """
- return [s.title for s in self.worksheets]
-
- def create_named_range(self, name, worksheet, range):
- """Create a new named_range on a worksheet"""
- assert isinstance(worksheet, Worksheet)
- named_range = NamedRange(name, [(worksheet, range)])
- self.add_named_range(named_range)
-
- def get_named_ranges(self):
- """Return all named ranges"""
- return self._named_ranges
-
- def add_named_range(self, named_range):
- """Add an existing named_range to the list of named_ranges."""
- self._named_ranges.append(named_range)
-
- def get_named_range(self, name):
- """Return the range specified by name."""
- requested_range = None
- for named_range in self._named_ranges:
- if named_range.name == name:
- requested_range = named_range
- break
- return requested_range
-
- def remove_named_range(self, named_range):
- """Remove a named_range from this workbook."""
- self._named_ranges.remove(named_range)
-
- def save(self, filename):
- """ shortcut """
- if self.__optimized_write:
- save_dump(self, filename)
- else:
- save_workbook(self, filename)