Ask Your Question

import data .xls

asked 2011-05-06 07:43:33 -0500

massimiliano manfren gravatar image

updated 2011-05-06 08:30:12 -0500

benjaminfjones gravatar image

Hi I would like to run this python script in sage (simple example):

def import_xls(filename, worksheet=1):
    import xlrd
    book = xlrd.open_workbook(filename)
    sh = book.sheet_by_index(worksheet - 1)     
    data = []
    for i in range(sh.ncols):
    print 'Worksheet Names: %s; Rows: %s; Columns: %s'%(, sh.nrows, sh.ncols)
    return data

def export_xls(data, filename):
    import xlwt
    wb = xlwt.Workbook()
    ws = wb.add_sheet('Sheet1')
    for i in range(len(data)):
        for k in range(len(data[i])):

from cvxopt import matrix
from cvxopt import solvers
from numpy import array
from numpy import zeros

A = import_xls('sample.xls', worksheet=1)
b = import_xls('sample.xls', worksheet=2)
c = import_xls('sample.xls', worksheet=3)

# linear programming model 
A = matrix(A)  
b = matrix(b)
c = matrix(c)
print sol['x']
x = sol['x']

But it returns the following error: ImportError: No module named xlrd Can you help me? Thanks a lot

edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted

answered 2011-05-06 08:51:27 -0500

benjaminfjones gravatar image

updated 2011-05-06 12:43:14 -0500

The xlrd and xlwt python modules are not included in Sage's python, so you'll have to install them. Download the modules (xlrd is here) in .tar.gz form and unpack in a directory:

~/Downloads> tar -xvzf xlrd-0.7.1.tar.gz
~/Downloads> cd xlrd-0.7.1

Now, have Sage's python install the module:

~/Downloads/xlrd-0.7.1> mysage -python install

where "mysage" refers to your sage script, for example "/Users/bob/sage-4.6.1/sage". In Sage you can now import and use xlrd.

edit flag offensive delete link more


I think it is recommended to prepend short options with a single hyphen "-". I'm referring to `tar` in this case.

Kelvin Li gravatar imageKelvin Li ( 2011-05-06 12:40:33 -0500 )edit

right you are!

benjaminfjones gravatar imagebenjaminfjones ( 2011-05-06 12:41:58 -0500 )edit

answered 2011-05-06 08:31:30 -0500

kcrisman gravatar image

You'll have to get the xlrd Python module; it's not standard, and has to be installed. It looks like there is a lot of stuff about it out there, though, so hopefully installing it on your system wouldn't be too hard. You should be able to do the install or whatever in the Sage Python as well, though apparently using easy_install inside the Sage prompt doesn't work for me.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2011-05-06 07:43:33 -0500

Seen: 1,614 times

Last updated: May 06 '11