xlrd2
xlrd2 is an effort to extend xlrd project, which is no longer mintained by its developers.
The main goal is to make it suitable for extracting necessary information from malicious xls documents.
Xlrd Purpose: Provide a library for developers to use to extract data from Microsoft Excel (tm) spreadsheet files. It is not an end-user tool.
Versions of Python supported: 2.7, 3.4+.
Installation:
-
Installing using pip
pip install xlrd2
-
Installing the latest development
Using pip
pip install -U https://github.com/DissectMalware/xlrd2/archive/master.zip
Or download the latest version
wget https://github.com/DissectMalware/xlrd2/archive/master.zip
Extract the zip file and go to the extracted directory
python setup.py install --user
Quick start:
import xlrd2
book = xlrd2.open_workbook("myfile.xls")
print("The number of worksheets is {0}".format(book.nsheets))
print("Worksheet name(s): {0}".format(book.sheet_names()))
sh = book.sheet_by_index(0)
print("{0} {1} {2}".format(sh.name, sh.nrows, sh.ncols))
print("Cell D30 is {0}".format(sh.cell_value(rowx=29, colx=3)))
for rx in range(sh.nrows):
print(sh.row(rx))
Another quick start: This will show the first, second and last rows of each sheet in each file:
python PYDIR/scripts/runxlrd2.py 3rows *blah*.xls
Xlrd Acknowledgements:
- This package started life as a translation from C into Python of parts of a utility called "xlreader" developed by David Giffin. "This product includes software developed by David Giffin david@giffin.org."
- OpenOffice.org has truly excellent documentation of the Microsoft Excel file formats and Compound Document file format, authored by Daniel Rentz. See http://sc.openoffice.org
- U+5F20 U+654F: over a decade of inspiration, support, and interesting decoding opportunities.
- Ksenia Marasanova: sample Macintosh and non-Latin1 files, alpha testing
- Backporting to Python 2.1 was partially funded by Journyx - provider of timesheet and project accounting solutions (http://journyx.com/).
- Provision of formatting information in version 0.6.1 was funded by Simplistix Ltd (http://www.simplistix.co.uk/)