.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2020 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc

.. currentmodule:: wx.lib.agw.xlsgrid

.. highlight:: python



.. _wx.lib.agw.xlsgrid.XLSGrid:

==========================================================================================================================================
|phoenix_title|  **wx.lib.agw.xlsgrid.XLSGrid**
==========================================================================================================================================

:class:`XLSGrid` is a class based on :class:`grid.Grid` that can be used to faithfully
reproduce the appearance of a Microsoft Excel spreadsheet (one worksheet per
every instance of :class:`XLSGrid`).

:class:`XLSGrid` is a completely owner-drawn control, and it relies on the power of
:class:`grid.PyGridTableBase` and :class:`grid.PyGridCellRenderer` to draw the cell
content. For this reasons (and for some others, see the TODOs section), it will
work efficiently only for relatively small Excel files.



|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>XLSGrid</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.lib.agw.xlsgrid.XLSGrid_inheritance.png" alt="Inheritance diagram of XLSGrid" usemap="#dummy" class="inheritance"/></center>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.lib.agw.xlsgrid.XLSGrid.html" title="wx.lib.agw.xlsgrid.XLSGrid" alt="" coords="11,469,206,499"/> <area shape="rect" id="node3" href="wx.ScrolledCanvas.html" title="wx.ScrolledCanvas" alt="" coords="36,315,181,344"/> <area shape="rect" id="node4" href="wx.Window.html" title="wx.Window" alt="" coords="60,237,157,267"/> <area shape="rect" id="node5" href="wx.WindowBase.html" title="wx.WindowBase" alt="" coords="44,160,173,189"/> <area shape="rect" id="node6" href="wx.EvtHandler.html" title="wx.EvtHandler" alt="" coords="50,83,167,112"/> <area shape="rect" id="node7" href="wx.Object.html" title="wx.Object" alt="" coords="5,5,92,35"/> <area shape="rect" id="node8" href="wx.Trackable.html" title="wx.Trackable" alt="" coords="117,5,223,35"/> </map> 
   </p>
   </div>

|


|appearance| Control Appearance
===============================

|

.. figure:: _static/images/widgets/fullsize/wxmsw/wx.lib.agw.xlsgrid.xlsgrid.png
   :alt: wxMSW
   :figclass: floatleft

   **wxMSW**


.. figure:: _static/images/widgets/fullsize/wxmac/../no_appearance.png
   :alt: wxMAC
   :figclass: floatright

   **wxMAC**


.. figure:: _static/images/widgets/fullsize/wxgtk/../no_appearance.png
   :alt: wxGTK
   :figclass: floatcenter

   **wxGTK**


|




|super_classes| Known Superclasses
==================================

:class:`wx.grid.Grid`

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.lib.agw.xlsgrid.XLSGrid.__init__`                                     Default class constructor.
:meth:`~wx.lib.agw.xlsgrid.XLSGrid.DestroyTip`                                   If a comment window or a tooltip over a hyperlink have been created, this
:meth:`~wx.lib.agw.xlsgrid.XLSGrid.FormatCell`                                   Processes the creation of a single cell (an instance of :class:`XLSCell`).
:meth:`~wx.lib.agw.xlsgrid.XLSGrid.GetDefaultFontData`                           Returns suitable width and height (in pixels) starting from Excel's own
:meth:`~wx.lib.agw.xlsgrid.XLSGrid.InstallGridHint`                              Auxiliary method used to bind a ``wx.EVT_MOTION`` event to :class:`XLSGrid`.
:meth:`~wx.lib.agw.xlsgrid.XLSGrid.PopulateGrid`                                 This is the main method of this class, and it is used to actually create
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: XLSGrid(gridlib.Grid)

   :class:`XLSGrid` is a class based on :class:`grid.Grid` that can be used to faithfully
   reproduce the appearance of a Microsoft Excel spreadsheet (one worksheet per
   every instance of :class:`XLSGrid`).
   
   :class:`XLSGrid` is a completely owner-drawn control, and it relies on the power of
   :class:`grid.PyGridTableBase` and :class:`grid.PyGridCellRenderer` to draw the cell
   content. For this reasons (and for some others, see the TODOs section), it will
   work efficiently only for relatively small Excel files.

   .. method:: __init__(self, parent)

      Default class constructor.
      
      :param `parent`: the grid parent window. Must not be ``None``.


   .. method:: DestroyTip(self)

      If a comment window or a tooltip over a hyperlink have been created, this
      method destroys them.


   .. method:: FormatCell(self, book, sheet, row, col, display_texts, comments, hyperlink, rich_text, default_width, default_colour)

      Processes the creation of a single cell (an instance of :class:`XLSCell`).
      
      :param `book`: an instance of the `xlrd.Book` class;
      :param `sheet`: an instance of the `xlrd.sheet` class;
      :param `row`: the row in which this cell lives;
      :param `col`: the column in which this cell lives;
      :param `display_texts`: if Mark Hammonds' `pywin32` package is available,
       this is the WYSIWYG cell content for all the cells in the Excel worksheet;
      :param `comments`: if Mark Hammonds' `pywin32` package is available,
       this is a nested list of cell comments (notes) for all the cells in the
       Excel worksheet;
      :param `hyperlink`: if this cell contains a hyperlink, it will be displayed
       accordingly;
      :param `rich_text`: if this cell contains text in rich text format, :class:`XLSGrid`
       will do its best to render the text as rich text;
      :param `default_width`: this is the default width of the text in 1/256
       of the width of the zero character, using default Excel font (first FONT
       record in the Excel file);
      :param `default_colour`: the "magic" colour used by Excel to draw non-custom
       border lines.
      
      :note: If you are using version 0.7.1 or lower for `xlrd`, the *hyperlink*
       parameter will always be ``None`` as this feature is available only in
       `xlrd` 0.7.2 (SVN).
      
      :note: If you are using version 0.7.1 or lower for `xlrd`, the `rich_text`
       parameter will always be ``None`` as this feature is available only in
       `xlrd` 0.7.2 (SVN).
      
      :note: If Mark Hammonds' `pywin32` package is not available, the `display_texts`
       and `comments` parameter will be two empty nested lists.


   .. method:: GetDefaultFontData(self, book)

      Returns suitable width and height (in pixels) starting from Excel's own
      measurements (in characters, whatever that means).
      
      :param `book`: an instance of the `xlrd.Book` class.
      
      :returns: a `default_width` and `default_height` in pixels, based on the
       default width of the text in 1/256 of the width of the zero character,
       using default Excel font (first FONT record in the Excel file).


   .. method:: InstallGridHint(self)

      Auxiliary method used to bind a ``wx.EVT_MOTION`` event to :class:`XLSGrid`.


   .. method:: PopulateGrid(self, book, sheet, display_texts, comments)

      This is the main method of this class, and it is used to actually create
      the cells, size the columns and rows, merging cells, etc...
      
      :param `book`: an instance of the `xlrd.Book` class;
      :param `sheet`: an instance of the `xlrd.sheet` class;
      :param `display_texts`: if Mark Hammonds' `pywin32` package is available,
       this is the WYSIWYG cell content for all the cells in the Excel worksheet;
      :param `comments`: if Mark Hammonds' `pywin32` package is available,
       this is a nested list of cell comments (notes) for all the cells in the
       Excel worksheet.


