tags:

views:

154

answers:

5

I have some data that I'd like to save in an excel file. How does one do this in python?

+5  A: 

There's a great python module called XLWT. I'd recommend using that... it writes native Excel files instead of CSVs. Supports formulas, etc too.

Documentation (borrowed from Mark)

kchau
+3  A: 

I'll answer a slightly different question: "How can I write data so that Excel can read it?"

Use the csv module to write your data as a .csv file, and then open it in Excel.

import csv
csvout = csv.writer(open("mydata.csv", "wb"))
csvout.writerow(("Country", "Year"))
for coutry, year in my_data_iterable():
    csvout.writerow((country, year))
Ned Batchelder
Note: this works, but in some locales (particularly where the decimal comma ',' is used instead of the decimal dot '.'), you'll need to use different separators (semicolons, for example).
Piskvor
@Poskvor: Maybe you know this, but I'll state it for the general good. The delimiter can be changed by using a Dialect. See http://docs.python.org/library/csv.html
Fred Larson
+1  A: 

If you want a BIFF8 XLS file, I would use the excellent xlwt.

Mark
A: 

if it's running on windows, try creating an instance of EXCEL.APPLICATION via COM

Use Excel Help for the object reference.

This way you can even format the data, write formulas, etc.

Alexander
Only works if you have Microsoft Office installed as well.
Piskvor
I assumed it is installed, because the question was explicit about Excel.
Alexander
yeah but the question was about an excel file, not using the excel application.
Anonymous Type
no, there was nothing about that.
Alexander
A: 

You may want to look at this book: "Python Programming On Win32" from O'Reilly. Is old but useful. It use the "Python for Windows Extensions" (http://starship.python.net/~skippy/win32) for manage COM gracefully. There is a couple of examples using Excel in this extensions.

Ither