XLSGrid is a completely owner-drawn control, and it relies on the power of wx.grid.PyGridTableBase and wx.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.
XLSGrid requires the xlrd package from:
Minimum version requirement for xlrd is 0.7.1. If you wish to have support for hyperlinks inside cells and rich text content, you need the SVN version of xlrd.
On Windows, it is strongly recommended to install Mark Hammonds’ pywin32 package:
This will allow you to perfectly reproduce the appearance of the Excel worksheet in your instance of XLSGrid.
If Mark Hammonds’ pywin32 package is not available, the formatting capabilities of XLSGrid are severely limited; for instance, you won’t probably get the exact WYSIWYG between the Excel spreadsheet and XLSGrid.
XLSGrid can only read Excel xls files, not the newer versions xlsx generated by Office 2007/2010. If you have a xlsx file, you will need to save it in 1997-2003 Office compatibility mode.
Currently this class provides a read-only subclass of wx.grid.Grid, with the following formatting features already implemented:
And a lot more. Check the demo for an almost complete review of the functionalities.
import wx import xlrd import os import xlsgrid as XG class MyFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, parent, -1, "XLSGrid Demo", size=(1000, 800)) filename = os.path.join(os.getcwd(), "Excel", "Example_1.xls") sheetname = "Example_1" book = xlrd.open_workbook(filename, formatting_info=1) sheet = book.sheet_by_name(sheetname) rows, cols = sheet.nrows, sheet.ncols comments, texts = XG.ReadExcelCOM(filename, sheetname, rows, cols) xls_grid = XG.XLSGrid(self) xls_grid.PopulateGrid(book, sheet, texts, comments) # our normal wxApp-derived class, as usual app = wx.PySimpleApp() frame = MyFrame(None) app.SetTopWindow(frame) frame.Show() app.MainLoop()
This code snippet can be downloaded, see this example script.
Some of the AGW snippets of code in the documentation use images and external files (to create bitmaps or access external data). As these files are not provided in these snippets, you should make the approriate modifications to the code to actually run it.
Please note that you have to pass the keyword formatting_info to the method xlrd.open_workbook to obtain the cell formatting.
No particular window styles are available for this class.
No custom events are available for this class.
XLSGrid is distributed under the wxPython license.
Latest Revision: Andrea Gavana @ 17 Aug 2011, 15.00 GMT
Module author: Andrea Gavana <email@example.com>
Inheritance diagram for module: xlsgrid
A graphical representation of the SVN commits in the last year.
Click on any date in the picture to jump to that particular revision page, containing information about committers, log messages and SVN diffs.
No issues have been detected by 2to3.py.