Does anyone know of a library that will allow me to write an odt (Open Document Format, i.e. OpenOffice compatible) file from a C program?
ODT/ODF is basically zipped XML, so any XML library will do. You'll need to know the specification though if you're going to write a new ODT file from scratch. It's much easier to unpack an existing ODT and insert data into contained the content.xml file.
See OASIS OpenDocument Essentials (especially the "The Virtues of Cheating" paragraph)