6

I need to edit an Excel workbook using python. Is there a way of doing this without reading in the workbook, editing what I want and the writing it back? i.e. is there a way I can do this on the fly, as I only need to edit a couple of values per sheet?

I have looked at pyexcelerator, xlrd, and xlwt, but they only seem to support (as far as I can work out) reading and writing not editing. I cannot use pywin32 as I am using linux.

Any suggestions of libraries or particular ways of doing things?

martineau
  • 119,623
  • 25
  • 170
  • 301
Jim Jeffries
  • 9,841
  • 15
  • 62
  • 103

3 Answers3

9

First off, what version of Excel? Excel2007+ use an XML file format, while Excel2003- used a proprietary binary format... so the tools to read and write these work in totally different ways.

If you're after the more recent xlsx files, then take a look at Eric' Gazoni's openpyxl project. The code can be found on bitbucket. The driving force behind this is the ability to read and write xlsx files from Python within a single library.

Even then, it reads the entire workbook, but allows you to modify cells before writing it back.

Simply put: the structure of an Excel file doesn't lend itself to easy editing.... it's not simply a case of changing a few characters.

Mark Baker
  • 209,507
  • 32
  • 346
  • 385
2

xlutils has a copy module that may be interseting for you

luc
  • 41,928
  • 25
  • 127
  • 172
0

I have used pyexcelerator on linux to edit and build xls files

Vince Spicer
  • 4,325
  • 3
  • 21
  • 11