¿Cómo ensamblar correctamente un archivo xlsx válido a partir de sus subcomponentes internos?

Estoy tratando de crear un archivo xlsx programáticamente en iOS. Dado que los datos internos de los archivos xlsx se almacenan básicamente en archivos xml separados, intenté recrear la estructura xlsx con todos sus archivos y subdirectorios, comprimirlos en un archivo zip y establecer su extensión en xlsx. Utilizo el analizador / escritor GDataXML para crear todos los archivos xml necesarios. Sin embargo, el archivo que recibo no se puede abrir como archivo xlsx. Incluso si extraigo todos los datos de un archivo xlsx válido, cree todos los archivos xml manualmente copiando los datos de los archivos xml originales y comprímalos manualmente, no puedo volver a crear un archivo xlsx válido.

Las preguntas son:

¿Es xlsx realmente solo un archivo que contiene archivos xml?¿Cómo creo un archivo xlsx válido mediante programación si no puedo simplemente comprimir archivos xml en un archivo zip y establecer su extensión en xlsx?

Respuestas a la pregunta(2)

Su respuesta a la pregunta