Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!feeder4.news.weretis.net!rt.uk.eu.org!newsfeed.xs4all.nl!newsfeed1.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'parameters': 0.04; 'subject:Python': 0.06; 'column': 0.07; 'puts': 0.07; 'pypi': 0.07; 'file)': 0.09; 'latter': 0.09; 'window.': 0.09; 'windows': 0.15; 'from:addr:pobox.com': 0.16; 'from:addr:skip': 0.16; 'inability': 0.16; 'modules,': 0.16; 'simplest': 0.16; 'subject:Reading': 0.16; 'throw': 0.16; 'xlrd': 0.16; 'files.': 0.16; 'sender:addr:gmail.com': 0.17; 'properly': 0.19; 'config': 0.24; 'skip': 0.24; 'options': 0.25; 'define': 0.26; 'permission': 0.26; 'excel': 0.26; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; '(new': 0.31; 'parameters.': 0.31; 'open': 0.33; 'mac': 0.33; 'basic': 0.35; 'something': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'google': 0.35; 'there': 0.35; 'really': 0.36; 'format.': 0.36; 'subject:?': 0.36; 'so,': 0.37; 'stable': 0.38; 'to:addr:python-list': 0.38; 'issue': 0.38; 'weight': 0.39; 'sure': 0.39; 'to:addr:python.org': 0.39; 'how': 0.40; 'read': 0.60; 'upgrading': 0.60; 'new': 0.61; 'high': 0.63; 'market': 0.66; 'saving': 0.69; 'spreadsheet': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:message-id:subject:from:to:content-type; bh=H8Lnyl4WmcWhVBdpCzXvrhNIUHkfXxsGy1M+mfZHleg=; b=yjpDMEUTzTqrAgxiOhYxwuBRbsNZiGgP8rGCX8bwXyxSDA+RwOnkCmiyg1R/rMm0tc MyelB7fpspkaY+RUE6roghdbA4YlCCYd35uNGCCE2CGw8x/FRVSpsiR6OegfCrBn/sCJ 7fhBp5POtmgle46OsSc2AiWioKZUl3HElMSn57phJeSXzD23O4p6I1lW8pFecUcLodXN +SyLlJEenF/ayDRohmXc9vgnsA3PKQW5jmdOfVYfANxBVcdQYwxR0YlAcJVbhuPAGTsm gao/dikuigEAkbvEvq4mOqOfkguFvS2iLYg4wgsbwFR4F86ve6J+g0pOPMg6GOHG38Yw 5gVQ== MIME-Version: 1.0 X-Received: by 10.50.122.67 with SMTP id lq3mr6691938igb.8.1400603886507; Tue, 20 May 2014 09:38:06 -0700 (PDT) Sender: skip.montanaro@gmail.com Date: Tue, 20 May 2014 11:38:06 -0500 X-Google-Sender-Auth: FgSS7kVQH5jzlrA8xGyonN1mPck Subject: Reading OpenOffice spreadsheet in Python? From: Skip Montanaro To: Python Content-Type: text/plain; charset=UTF-8 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 28 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1400603888 news.xs4all.nl 2947 [2001:888:2000:d::a6]:33466 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:71812 I don't have Windows and since upgrading my Mac to Mavericks I no longer have Excel of any flavor. I have a few Excel spreadsheets in which I store parameters from which I generate other config files. I read those spreadsheets using xlrd. I am so fed up with LibreOffice's inability to properly support really basic Excel capabilities, I'm about ready to throw my computer out the window. So, I'm looking for alternatives. Before someone suggests config parser/Windows INI files... A spreadsheet format is kinda handy in this case because I do use a few formulas to define some of the parameters. Adding a new row (new config file) or column (new parameter) is a breeze. The simplest solution would seem to be to submit to LibreOffice's terror and just start saving my spreadsheets in OpenDocument format. That then puts me in the market for an xlrd replacement. Is there something akin to xlrd for OpenDocument spreadsheets? I see a couple possibilities in PyPI (exodf, odfpy), but none which have a really high weight (suggesting they are "category killers"). I'm open to other options as well. I see a number of Google spreadsheet modules, and there is pyspread. The former has the permission issue (besides, where I work everything goes into Git), and I'm not sure how full-featured or stable the latter is (but, will investigate). Thx, Skip