It looks like this is not possible due to one dominating factor: commercial character of Microsoft Office and its licensing.
That said, not only this is a problem which probably won't have a satisfactory solution, but you also should not try to approach it like that. You can look at the problem from a different perspective: you may need a non-Microsoft component capable of reading/writing some Office documents. And this looks more realistic.
The only open-source code I know is OpenOffice itself (where .odt came from) and its
fork LibreOffice. Please see:
http://en.wikipedia.org/wiki/OpenOffice.org[
^],
http://www.openoffice.org/[
^],
http://en.wikipedia.org/wiki/LibreOffice[
^],
http://www.libreoffice.org/[
^].
[EDIT #1]
You can use LibreOffice components in your C# application because there is such thing as LibreOffice SDK for CLI:
http://api.libreoffice.org/examples/examples.html[
^],
http://api.libreoffice.org/examples/examples.html#CLI_examples[
^].
[EDIT #2]
You can start with LibreOffice documentation on CLI binding:
http://wiki.openoffice.org/wiki/Documentation/DevGuide/ProUNO/CLI/CLI_Language_Binding[
^].
The LibreOffice binding assemblies you need to reference are listed here:
http://wiki.openoffice.org/wiki/Documentation/DevGuide/ProUNO/CLI/Language_Binding_DLLs[
^].
And so on…
—SA