Question

I have created an excel sheet using XLWT plugin using Python. Now, I need to re-open the excel sheet and append new sheets / columns to the existing excel sheet. Is it possible by Python to do this?

Was it helpful?

Solution

After investigation today, (2014-2-18) I cannot see a way to read in a XLS file using xlwt. You can only write from fresh. I think it is better to use openpyxl. Here is a simple example:

from openpyxl import Workbook, load_workbook

wb = Workbook()
ws = wb.create_sheet()
ws.title = 'Pi'
ws.cell('F5').value = 3.14156265
wb.save(filename=r'C:\book2.xls')

# Re-opening the file:
wb_re_read = load_workbook(filename=r'C:\book2.xls')
sheet = wb_re_read.get_sheet_by_name('Pi')
print sheet.cell('F5').value

See other examples here: http://pythonhosted.org/openpyxl/usage.html (where this modified example is taken from)

OTHER TIPS

You read in the file using xlrd, and then 'copy' it to an xlwt Workbook using xlutils.copy.copy().

Note that you'll need to install both xlrd and xlutils libraries.

Note also that not everything gets copied over. Things like images and print settings are not copied, for example, and have to be reset.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top