Skip to content

DissectMalware/xlrd2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  1. Installing using pip

     pip install xlrd2
    
  2. 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 [email protected]."
  • 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/)