2011-11-18 22 views
9

Tengo un mapa XML en una hoja de cálculo de Excel 2010, que actualizo a partir de los contenidos de un archivo XML de forma regular. Recientemente agregué un nuevo campo a los datos XML y deseo que aparezca en mi mapa XML.Excel Agregar un campo a un mapa Xml

Simplemente quiero ser capaz de agregar el nuevo campo, aunque parece que aunque tenga que volver a importar toda la estructura, no quiero hacer esto, ya que será necesario volver a desarrollar muchos formatos personalizados.

Cualquier ayuda apreciada.

Respuesta

5

Lamentablemente, no existe un método fácil de "actualizar" para el esquema en el modelo de objetos XML en Excel en este momento. El XML Toolbox for Excel 2003 solía ser capaz de hacer esto, pero no estoy seguro de si esto todavía se ejecuta en Excel 2010 (vale la pena intentarlo). Una alternativa a esto es escribir su propio código VBA que importaría su "nuevo" esquema en un nuevo mapa, y luego mirar los mapas de elementos existentes para el esquema "antiguo" y luego reasignarlos al "nuevo" esquema, finalmente eliminando el viejo. Suena un poco peludo, lo sé, pero si su esquema no cambia significativamente, entonces podría ser la respuesta.

Hay un método menos elegante que esto, que implica cambiar directamente el esquema en el XML subyacente del libro. Si echas un vistazo dentro de la estructura del libro bajo la carpeta xl, verás que hay un archivo llamado xmlMaps.xml y dentro de este archivo habrá una copia de tu esquema; puedes editarlo directamente (agregar nuevos elementos, etc.) y Aparecerán nuevos campos para su uso en su libro de trabajo cuando lo abra nuevamente en Excel, sin cambiar el formato original de la celda.

+0

La caja de herramientas es un marco .NET desagradable, primero se requiere 1.1, entonces se negó a instalar con un motivo no especificado, por lo que tuvo que extraer manualmente los archivos del msi, y cuando por fin lo tengo que aparecen en las Excel, el botón Volver a cargar XML Map mostraría el cuadro de diálogo de reasignación, pero sin esquemas enumerados en él. ¿Funciona solo con esquemas mapeados a un origen de datos (los nuestros no)? – GSerg

4

extraje la xlsx como una cremallera y era capaz de hacer los cambios manualmente sin tener que borrar y agregar las asignaciones de nuevo siguiendo las instrucciones que aparecen en este sitio: http://davidovitz.blogspot.com/2010/05/howto-refresh-xml-schema-in-excel.html

+0

Entonces, el paso es que extraiga los archivos y luego actualice (reemplace el xmlMaps.xml), entonces, ¿cuál es el siguiente paso para convertirlo nuevamente a un archivo de Excel? – akd

2

Esto no es exactamente lo que hizo la OP para, pero funcionó en mi caso, por lo que estoy agregando que como una solución probable (el uso de Office 2013)

  1. clic derecho en su cinta y habilitar herramientas de desarrollo

enter image description here

  1. Ir a la nueva sección Herramientas de su cinta y haga clic en Fuente

enter image description here

  1. Esto abrirá un menú lateral del lado derecho. Los elementos en negrita se asignan actualmente a tus columnas. Tenga en cuenta dónde se asignan las cosas haciendo clic en ellas. En mi caso, fue bastante sencillo con la asignación del primer elemento a la columna A, etc. Luego, haga clic derecho en cualquier cosa en negrita y desmarque.

enter image description here

  1. Haga clic en el mapa XML botón en la parte inferior del menú lateral

  2. Haga clic Añadir y vaya a un archivo o introducir una URL

enter image description here

  1. Retire el mapeo si quieres

  2. resaltar todas sus nuevos elementos y haga clic derecho para asignar una nueva asignación. Usa las notas que anotaste antes para hacer esto. Una vez más, mi caso fue muy sencillo ya que las columnas fueron meramente añadidas al final. Si tiene columnas añadidas en el medio, querrá reasignarlas al final de su tabla.

+0

Esto no funciona en Office2016 para mí. El paso "Agregar" rechaza las entradas de URL. – mrtsherman

+0

Utilicé un flujo de trabajo similar, que funcionó bien cuando las columnas se eliminaron o se agregaron en el medio y si no es necesario realizar muchas asignaciones: 1) eliminar el mapa XML anterior 2) agregar el nuevo mapa XML 3) volver a crear el mapeo cada elemento arrastra y suelta cada elemento individualmente desde el panel Fuente XML en su columna de la tabla existente (o en una nueva columna). – Kapep

Cuestiones relacionadas