The file was sent to me privately and I was able to fix the problem.
Since dahaoleboy asked for some details, and I've seen this same problem in two damaged Calc files recently, here's what I did. I'm working in Linux, so the precise steps will only work in that environment, but the overall strategy can be pursued on any system with similar tools.
0) Prep - make a copy of the damaged file, and a new directory to work in
$ cp damaged.ods damaged_copy.ods
$ mkdir work
$ cd work
1) Extract the content.xml portion of the document archive:
$ unzip ../damaged.ods content.xml
2) Run an xml syntax checker to see what errors are found
$ xmllint -noout content.xml
content.xml:2: parser error : Attribute table:end-cell-address redefined
:end-x="0.1409in" table:end-y="0.135in" draw:z-index="3" table:style-name="ce43"
content.xml:2: parser error : Attribute table:end-x redefined
:end-x="0.1409in" table:end-y="0.135in" draw:z-index="3" table:style-name="ce43"
...
So the problem is that some xml elements have attributes that are defined more than once within the same element. That's not valid xml, and OOo refuses to open the document.
We have to find which elements have the duplicate attributes and edit the xml so that only one set of attributes is present.
3) Open the content.xml file in a text editor (I use emacs, but any good editor should be fine)
The offending xml element looks like this (after some formatting):
<table:table-cell
table:end-cell-address="'Daily Expenses'.U7"
table:end-x="0.1413in" table:end-y="0.002in" draw:z-index="0"
table:end-cell-address="'Daily Expenses'.U6"
table:end-x="0.1409in" table:end-y="0.1398in" draw:z-index="2"
table:end-cell-address="'Daily Expenses'.U6"
table:end-x="0.1409in" table:end-y="0.135in" draw:z-index="3"
table:style-name="ce43"
/>
You can see that there are actually three repeated definitions of the same attributes here.
I don't know exactly what these attributes do, and I don't know which definitions are the correct ones. The only strategy I have is to assume that the last set is the most recent and toss out the previous definitions. So, after removing the first two sets, the element looks like this:
<table:table-cell
table:end-cell-address="'Daily Expenses'.U6"
table:end-x="0.1409in" table:end-y="0.135in" draw:z-index="3"
table:style-name="ce43"
/>
Repeat the process for any other problems, and save the modified content.xml.
4) Replace the content.xml in the document copy with the updated (fixed) version:
$
zip ../damaged_copy.ods content.xmlText the modified copy in OOo Calc--it works! Be happy.
This is clearly a bug in OOo--it's generated and saved invalid xml--but obviously it does not happen all the time, not even with the same file. I have no idea what triggers this particular error, but thankfully it's rather straightforward to fix.