thx for sharing the experience. Do you know how to save a OO doc into M$
Excel format - I have a Python based server running on Linux box and
need to produce Excel files.
--
alf
I just noticed I still had the "no archive" header on, which is rather
stupid. If I want to make life easier for people, the information I
posted in this thread should be archived! Here is a small summary:
Get data from an OpenOffice.org spreadsheet with a Python script. It
works on the currently opened spreadsheet, so you can just as well
open an Excel sheet in OpenOffice.org and get the data from that.
http://www.stuvel.eu/archive/28/getting-data-from-an-openofficeorg-spreadsheet
Saving the currently opened OpenOffice.org spreadsheet to an Excel
sheet with just a few lines of Python code. There are still people
that favour MS Office and request Excel output from software. This is
easily done with OpenOffice.org and Python:
http://www.stuvel.eu/archive/29/ooo-spreadsheet-to-excel-with-python
Sybren
--
Sybren Stüvel
Stüvel IT - http://www.stuvel.eu/
Suppose one has over a hundred spreadsheets (real-life example: budgets
from an organisation's reporting centres) ... manually opening each in
OOo Calc is less than appealing, and not very robust.
With the 2nd example (alf's question: copy OOo Calc file to Excel xls
file), I don't see any advantage at all over the manual procedure (1)
start OOo Calc (2) open Calc file (3) File > Save As > select Microsoft
Excel 97 etc format > ... what am I missing? Your solution requires (1)
edit script to change name of output file; save script (where?) (2)
start OOo Calc with magic-spell on the command line (3) open calc file
(4) run script.
How does one write a script that can be in control e.g. script starts
OOo (if necessary), and extracts some data from all spreadsheet files
in a given directory (while one is at lunch)?
Cheers,
John
True. There are functions that can load files as well. Combined with
the glob module, this could automatically handle all files in a
certain directory.
> With the 2nd example (alf's question: copy OOo Calc file to Excel
> xls file), I don't see any advantage at all over the manual
> procedure (1) start OOo Calc (2) open Calc file (3) File > Save As >
> select Microsoft Excel 97 etc format > ... what am I missing? Your
> solution requires (1) edit script to change name of output file;
> save script (where?) (2) start OOo Calc with magic-spell on the
> command line (3) open calc file (4) run script.
It's just a demonstration of the file saving process. Indeed, the
saving not all that useful, but someone requested it and I wrote it.
> How does one write a script that can be in control e.g. script
> starts OOo (if necessary),
That's easily done with a system call or the subprocess or popen2
modules.
> and extracts some data from all spreadsheet files in a given
> directory (while one is at lunch)?
Just add a few lines to load the file instead of picking the currently
opened one. Do you want me to do more digging and extend the code? I'm
willing to do that, but only if it makes you happy :)
Other possible responses: (1) suggest the obvious(?)
less-labour-intensive no-script method (2) show how to automate it
robustly.
>
> > How does one write a script that can be in control e.g. script
> > starts OOo (if necessary),
>
> That's easily done with a system call or the subprocess or popen2
> modules.
>
> > and extracts some data from all spreadsheet files in a given
> > directory (while one is at lunch)?
>
> Just add a few lines to load the file instead of picking the currently
> opened one. Do you want me to do more digging and extend the code? I'm
> willing to do that, but only if it makes you happy :)
Firstly, let me say that you are highly commended for wading so far
into the OOo docs and producing two pieces of code that actually do
something. I've opened up the docs two or three times, said "Waaahht
the ...." and closed them rapidly.
I don't "want" you to do anything. However the interests of
evangelising/spreading the use of OOo software might be advanced were
you to go the extra step or two and post a recipe for simple data
extraction from a named file, rather than the currently open file. Add
a few hints like what are the types of the data that you get back
(especially how dates are distinguished from numbers, if at all) and
you'll be a hero :-)
Cheers,
John
Thanks. I had the same response, except that I had the gut feeling
that in the end things were going to be easy ;-)
> I don't "want" you to do anything. However the interests of
> evangelising/spreading the use of OOo software might be advanced
> were you to go the extra step or two and post a recipe for simple
> data extraction from a named file, rather than the currently open
> file. Add a few hints like what are the types of the data that you
> get back (especially how dates are distinguished from numbers, if at
> all) and you'll be a hero :-)
Sounds very tempting. I'll see what I can come up with, and write a
proper article on my website. Don't count on it being finished soon,
though, because this week is going to be very busy for me, and after
that I'll be on a two-week holiday.