Excel module for Python

S

Simon Brunning

I m wondering which Excel module is good to be used by Python?

If you are on Windows, and you have Excel, then the Python for Windows
extensions[1] are all you need to drive Excel via COM. O'Reilly's
"Python Programming on Win32" covers COM scripting extensively - and
by good fortune, driving Excel is the example they use, and the COM
scripting chapter is on-line[2].

You'll also need to know the objects and methods that Excel exposes.
These are documented on Microsoft's web site[3], or in the Excel VBA
help, which is an optional part of they Office installation.

--
Cheers,
Simon B,
(e-mail address removed),
http://www.brunningonline.net/simon/blog/

[1] http://starship.python.net/crew/mhammond/
[2] http://www.oreilly.com/catalog/pythonwin32/chapter/ch12.html
[3] http://msdn.microsoft.com/library/en-us/modcore/html/deovrWorkingWithMicrosoftExcelObjects.asp
 
S

sam

Simon said:
I m wondering which Excel module is good to be used by Python?


If you are on Windows, and you have Excel, then the Python for Windows
extensions[1] are all you need to drive Excel via COM. O'Reilly's
"Python Programming on Win32" covers COM scripting extensively - and
by good fortune, driving Excel is the example they use, and the COM
scripting chapter is on-line[2].

You'll also need to know the objects and methods that Excel exposes.
These are documented on Microsoft's web site[3], or in the Excel VBA
help, which is an optional part of they Office installation.

No, I don't use MS windows. I need to generate Excel file by printing
data to it, just like Perl module Spreadsheet::WriteExcel.

thanks
Sam
 
S

sp1d3rx

that's easy. Just make an html file of your data, using tables and save
it as a "*.xls" and excel will think it's an excel file.
 
P

Peter Hansen

sam said:
[snip]
No, I don't use MS windows. I need to generate Excel file by printing
data to it, just like Perl module Spreadsheet::WriteExcel.

Excel can read CSV files, so just use the standard Python module "csv"
and write your files that way.

-Peter
 
S

Simon Brunning

No, I don't use MS windows. I need to generate Excel file by printing
data to it, just like Perl module Spreadsheet::WriteExcel.

If it's just data that needs to go into your spreadsheet, then I'd
just build a CSV file if I were you. Excel opens them perfectly
happily.

If you need to write out formulae, formratting, that kind of thing,
then I think you'll need to write a 'real' Excel file. I don't have a
clue how to do that - sorry.
 
N

Neil Benn

sam said:
Simon said:
I m wondering which Excel module is good to be used by Python?



If you are on Windows, and you have Excel, then the Python for Windows
extensions[1] are all you need to drive Excel via COM. O'Reilly's
"Python Programming on Win32" covers COM scripting extensively - and
by good fortune, driving Excel is the example they use, and the COM
scripting chapter is on-line[2].

You'll also need to know the objects and methods that Excel exposes.
These are documented on Microsoft's web site[3], or in the Excel VBA
help, which is an optional part of they Office installation.

No, I don't use MS windows. I need to generate Excel file by printing
data to it, just like Perl module Spreadsheet::WriteExcel.

thanks
Sam

Hello,

If you can use jython then there is something that does this
in java - it's called POI (search for POI HSSF Excel) in google. If you
can't use jython and are desperate then you could set up a
WebService/cgi/<insert your favourite cross language client/server
architecture> and send the information back and forth. I spose you can
do this with perl as well (don't know any perl so this bit is only a
guess!).

However the last time I looked (about a year ago) POI does have
limitations with excel graphs.

Cheers,

Neil
 
E

Erwin S. Andreasen

If you need to write out formulae, formratting, that kind of thing,
then I think you'll need to write a 'real' Excel file. I don't have a
clue how to do that - sorry.

There's actually an ancient open spreadsheet format called SYLK which
is a step above CSV: it allows formatting of data, formulas etc.

Google for SYLK to get the rather sparse specification (and skip over
the first few links!)

If you want to generate "real" Office files from UNIX, another
alternative is to automate OpenOffice (which has a COM-like interface
too) or generate OO XML files and feed them to OO asking to conver
them with a bit of OO macro magic.
 
S

Stefan Eischet

Hi,

I didn't catch older mails in this thread, so excuse me if this has
already been pointed out:

http://pyxlwriter.sourceforge.net/

"It's a port of John McNamara's Perl Spreadsheet::WriteExcel module"
and it's really easy to use.
I'm not sure if it does formulae, but it handles formatting fine.

Putting together a file with complicated layout can be a lot of work,
so for large prebuilt files (which I sometimes have to "fill in"
programmatically), I just use COM with Excel. You'll have to run on
Windows for that, of course. ;-)

Cheers
Stefan
 
J

jean-paul

I generate a lot pseudo excel file. Just write row by row on file and
separate every cell of a row by a tab and put an .xls extension on the
file name. When you double click. It opens directly EXCEL and you have
directly the column and the row. It is easier than the CSV or SYLK
files. If you want to format it automatically you can either define a
VBA macro or use python com.

Cheers,

Jean-Paul
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,020
Latest member
GenesisGai

Latest Threads

Top