En la nueva versión de Office 2007 se está manejando un nuevo formato para almacenar la información. Claro que esta noticia no es nueva, solo que no quería dejar pasar la oportunidad de mencionarlo ya que he tenido la oportunidad de adentrar y conocer las capacidades que este nuevo paradigma de almacenamiento ofrece para diversos escenarios que estoy seguro algunos programadores VBA o de Macros van a agradecer.
En la versión de Microsoft Office System 2003 y anteriores Microsoft ha manejado formatos de archivos binarios para almacenar el contenido de documentos, hojas de cálculo y presentaciones. Este modelo claro que tiene sus ventajas pero en esta nueva realidad de la estandarización y orientación a servicios encontramos que un formato binario para almacenar contenido no es precisamente la mejor opción para habilitar escenarios de intercambio o de interoperabilidad entre plataformas operativas y de por si, como vivimos en un mundo conectado cada vez menos dependiente de una plataforma operativa pues los proveedores de tecnología poco a poco se van alineando en la implementación de esta tendencia. Por esta razón, Microsoft a creado todo un nuevo esquema XML llamado “Open Office XML File Format” para representar y describir el contenido que los paquetes de la familia de Office 2007 genera y ya de pilón, proponerlo como estándar ante las debidas reguladoras internacionales para unificar la forma en que estructuramos, organizamos e intercambiamos documentos en nuestra industria.
También es importante mencionar que ahora cambian las extensiones de archivos por *.docx, *.pptx, *.xlsx que los documentos de Word, Power Point o Excel 2007 generan.

No te alarmes porque si existe compatibilidad con:
- Los archivos binarios actuales de Office 97-2003 se seguirán usando sin embargo existirá soporte para el nuevo formato XML descargando un addin.
Por un lado el usuario final tendrá la experiencia de utilizar un solo archivo de Word. Por otro lado un programador tendrá la experiencia de contar con un archivo modular que puede manipular a su antojo de manera manual o mejor aún, de manera programática.
Veamos un ejemplo:
En este sencillo documento llamado Nuevo Formato.docx encontraras que tenemos un texto normal con una imagen incrustada. Veamos como podemos renombrar el archivo docx a zip para husmear en su contenido.
Localiza tu archivo docx

Renombra tu archivo docx a .zip

Confirmas el cambio

Y listo, ya tienes tu archivo en formato zip.

Damos doble clic sobre el archivo Nuevo Formato.docx.zip y debido a que ahora es un paquete comprimido accederás a una estructura de carpetas y archivos que prácticamente representa la propuesta para estandarizar en XML el contenido de un documento Word 2007.

En la carpeta raíz encontraras el archivo [Content_Types].xml el cual contiene representado en XML los tipos de contenido que este archivo soporta dentro. Normalmente en un archivo de Word contamos con imágenes, estilos, propiedades del documento, temas, tipos de fuentes etc y en este archivo se especifica en que carpeta de esta sencilla estructura se encuentran los diferentes los archivos específicos de cada tipo de contenido.
En la carpeta _rels contiene descrito en XML cualquier relación que exista entre las partes de un documento, por ejemplo, para cualquier documento de Word 2007 se requiere relacionar algunos archivos XML que describen aspectos generales del mismo como por ejemplo sus propiedades, configuración, etc.
En la carpeta docProps contamos con dos archivos XML que describen aspectos de configuración y seguridad. (app.xml y core.xml) en donde en uno almacenamos las propiedades del documento en si como número de páginas, de caracteres, la plantilla utilizada, versión, etc. y en el otro archivo xml contamos con información relacionada con la fecha de creación, fecha de modificación, palabras clave, etc.
En la carpeta Word ya encontramos todo la información del contenido de nuestro documento:

En el archivo Document.xml contamos prácticamente con un XML que contiene nuestro contenido, si, el mismo contenido en texto que tenemos en nuestro documento de tal manera que aquí es donde podemos manipularlo manualmente o utilizando un modelo de objetos especifico para hacerlo programáticamente. Por ejemplo, en nuestro documento original tenemos el texto: Este es un ejemplo de un archivo de Word con su nuevo formato si vemos su representación XML encontramos lo siguiente:

Además en este XML se describe que nuestro documento cuenta con una imagen incrustada, esta imagen en su formato original se encuentra almacenada en la carpeta Media. SI manipulamos manualmente este archivo XML entonces nuestro documento se verá afectado con los cambios. Ya sea que lo hagamos programáticamente o manualmente este escenario nos ofrece resolver fácilmente el dolor de cabeza que muchos de nosotros hemos pasado cuando queremos remplazar contenido o campos dentro de un documento de Word.
Ahora no nada más podemos fácilmente manipular el contenido de un documento sino también su estilo visual. Rápidamente hay que extraer el archivo document.xml y abrirlo con bloc de notas.

Agregamos nuestro archivo modificado de donde lo sacamos y remplazamos su contenido.

Renombramos de nuevo nuestro archivo a formato docx y el resultado final será lo siguiente: