Форматы doc, xls, к сожалению, действительно сложные. В целом принцип построения слегка смахивает на файловую систему FAT. Но основная проблема не в сложности форматов, а в их проприетарности
Хорошо, когда программируешь под Win и есть компоненты для доступа к данным в этих форматах. Ну или возможность генерации данных с исползваонеим приложений MS Office. А вот, когда встала задача конвертирования XLS-файла для показа на сайте, помню, намучились. Ибо под *nix надо было писать конвертер. Да, либы были, но было огромное количество нюансов.
Ситуация улучшилась сейчас, с появлением форматов docx и xlsx, и после решения антимонопольного комитета. В результате имеем open-source конверторы из/в odt, а также Schema для этих документов. Так что, ИМХО, есть 2 причины использовать их:
1. Office 2007 распространён уже достаточно, и будет распространяться дальше.
2. Чтение/генерация упрощаются: любую библиотеку для работы с XML DOM-моделью и XML-парсер, и вперёд. Например, хоть на C++, хоть на Java берём Xerces и - вперед. Сможем даже заранее распознать битый/небытый документ - провалидировать по Schema и всё.