Export and import data¶
Export data from Odoo¶
When working with a database, it sometimes is necessary to export your data in a distinct file. Doing so can help to do reporting over your activities (even if Odoo offers a precise and easy reporting tool with each available application).
With Odoo, you can export the values from any field in any record. To do so, activate the list view on the items that need to be exported, click on Action, and, then, on Export.

Muy simple, esta acción viene con diversas particularidades. De hecho, cuando se hace click en Exportar, aparece una ventana emergente con varias opciones para la información a exportar.

With the I want to update data option ticked, the system only shows the fields which can be imported. This is very helpful in case you want to update existing records. Basically, this works like a filter. Leaving the box unticked gives way more field options because it shows all the fields, not just the ones which can be imported.
When exporting, you can choose between two formats: .csv and .xls. With .csv, items are separated with a comma, while .xls holds information about all the worksheets in a file, including both content and formatting.
Those are the items you may want to export. Use the arrows to display more sub-field options. Of course, you can use the search bar to find specific fields more easily. To use the search option more efficiently, display all the fields by clicking on all the arrows!
The + button is there to add fields to the «to export» list.
The «handles» next to the selected fields allow you to move the fields up and down to change the order in which they must be displayed in the exported file.
Si necesita quitar campos, tiene disponible la papelera
For recurring reports, it might be interesting to save export presets. Select all the needed ones and click on the template bar. There, click on New template and give a name to yours. The next time you need to export the same list, simply select the related template.
Truco
It’s good to keep the field’s external identifier in mind. For example, Related Company is equal to parent_id. Doing so helps export only what you would like to import next.
Import data into Odoo¶
Cómo empezar¶
Puedes importar datos en cualquier objeto de negocio de Odoo usando tanto formatos de Excel (.xlsx) o CSV (.csv): contactos, productos, resguardos bancarios e incluso pedidos!
Abra la vista del objeto que desea completar y haga clic en
.
Ahí se te provee de plantillas que puedes popular fácilmente con tu propia información. Dichas plantillas se pueden importar en un solo clic; el mapeo de información ya está hecho.
Cómo adaptar la plantilla¶
Añade, elimina y organiza columnas para adaptarse a la estructura de tu información.
Recomendamos no eliminar el ID (consulte el motivo en la siguiente sección).
Establezca una identificación única para cada registro arrastrando hacia abajo la secuencia de identificación.

Al añadir una nueva columna, es posible que Odoo no pueda mapearlo automáticamente si la etiqueta no corresponde a ningún campo en el sistema. Si es así, puedes mapear las nuevas columnas manualmente cuando testees la importación. Encuentra el campo correspondiente usando la búsqueda.
A continuación, usa la etiqueta de este campo en tu archivo para hacerlo funcionar bien la siguiente vez.
Cómo importar desde otra aplicación¶
Para re-crear las relaciones entre los distintos registros, deberías usar el identificador único de la aplicación original y mapearlo con la columna ID (ID Externo) en Odoo. Cuando importas otro registor que se relaciona con el primero, usa XXX/ID (XXX/ID Externo) para el identificador original. Puedes también encontrar este registro usando su nombre pero te vas a encontrar con al menos 2 registros con el mismo nombre.
El ID será usado para actualizar la importacion original si necesitas re-importar los datos después, aunque es buena práctica especificarlo cuando sea posible.
No puedo encontrar el campo al que quiero asignar mi columna¶
Odoo trata de buscar con algo de heurística, basado en las primeras diez líneas de los archivos, el tipo del campo por cada columna dentro de tu archivo. Por ejemplo si tienes una columna que solo contiene númetos, solo los campos que son de tipo Entero se mostrarán para que escojas. Miestras que este comportamiento puede resultar bueno y fácil para muchos casos, es también posible que no salga bien o que quieras mapear tu columna con un campo que no es propuesto por defecto.
Si eso pasa, solo tienes que seleccionar la opción Mostrar campos de campos de relación (avanzado), despúes podrás elegir de la lista completa de cada columna.

¿Dónde puedo cambiar el formato de importación de la fecha?¶
Odoo puede detectar automáticamente si una columna es una fecha e intentará adivinar el formato de fecha a partir de un conjunto de formatos de fecha más utilizados. Si bien este proceso puede funcionar para muchos formatos de fecha, no se reconocerán algunos formatos de fecha. Esto puede causar confusión debido a las inversiones día-mes; es difícil adivinar qué parte de un formato de fecha es el día y qué parte es el mes en una fecha como “01-03-2016 “.
Para ver qué formato de fecha ha encontrado Odoo en su archivo, puede verificar el Formato de fecha que se muestra al hacer clic en Opciones debajo del selector de archivos. Si este formato es incorrecto puedes cambiarlo a tu gusto usando la ISO 8601 para definir el formato.
Nota
Si está importando un archivo de Excel (.xls, .xlsx), puede usar celdas de fecha para almacenar fechas, ya que la visualización de fechas en Excel es diferente de la forma en que se almacena. De esa manera, se asegurará de que el formato de fecha sea correcto en Odoo, sea cual sea su formato de fecha local.
¿Puedo importar números con el signo de moneda (por ejemplo: $32.00)?¶
Sí, apoyamos totalmente los números entre paréntesis para representar el signo negativo, así como los números con el signo de moneda adjunto. Odoo también detecta automáticamente qué separador de miles / decimales utiliza (puede cambiarlos en opciones). Si usa un símbolo de moneda que Odoo no conoce, es posible que no se reconozca como un número y se bloqueará.
Ejemplos de números admitidos (usando treinta y dos mil como ejemplo):
32.000,00
32000,00
32,000.00
-32000.00
(32000.00)
$ 32.000,00
(32000.00 €)
Ejemplo que no servirá:
ABC 32.000,00
$ (32.000,00)
¿Qué puedo hacer si la tabla de vista previa de importación no se muestra correctamente?¶
De forma predeterminada, la vista previa de la importación se establece en comas como separadores de campo y comillas como delimitadores de texto. Si su archivo csv no tiene esta configuración, puede modificar las Opciones de formato de archivo (que se muestran debajo de la barra Examinar archivo CSV después de seleccionar su archivo).
Tenga en cuenta que si su archivo CSV tiene una tabulación como separador, Odoo no detectará las separaciones. Deberá cambiar las opciones de formato de archivo en su aplicación de hoja de cálculo. Vea la siguiente pregunta.
¿Cómo puedo cambiar las opciones de formato de archivo CSV al guardar en mi aplicación de hoja de cálculo?¶
Si edita y guarda archivos CSV en aplicaciones de hoja de cálculo, se aplicará la configuración regional de su computadora para el separador y el delimitador. Le sugerimos que utilice OpenOffice o LibreOffice Calc, ya que le permitirán modificar las tres opciones (en
).Microsoft Excel le permitirá modificar solo la codificación al guardar (en
).¿Cuál es la diferencia entre id. de la BD e ID Externo?¶
Algunos campos definen una relación con otro objeto. Por ejemplo, el país de un contacto es un enlace a un registro del objeto “País”. Cuando desee importar dichos campos, Odoo tendrá que volver a crear enlaces entre los diferentes registros. Para ayudarlo a importar dichos campos, Odoo proporciona tres mecanismos. Debe utilizar uno y solo un mecanismo por campo que desee importar.
Por ejemplo, para referenciar el país de un contacto, Odoo propone 3 modos diferentes de importación:
País: el nombre o código del país
País / ID de base de datos: el ID de Odoo único para un registro, definido por la columna ID postgresql
País / ID externo: el ID de este registro al que se hace referencia en otra aplicación (o el archivo .XML que lo importó)
Para el país Bélgica, puede usar uno de estos3 métodos de importación:
País: Bélgica
País/ID de base de datos: 21
País/Id. externo: base.be
Según su necesidad, debe utilizar una de estas 3 formas de referenciar registros en relaciones. Aquí es cuando debes usar uno u otro, según tu necesidad:
Usar País: Ésta es lo forma más sencilla cuando los datos provienen de archivos CSV que se han creado manualmente.
Usar País/Id. de la BD: Raramente debería usar esta notación. Se usa más a menudo por los desarrolladores puesto que su principal ventaja es la de no tener nunca conflictos (puede que tenga varios registros con el mismo nombre, pero sólo tendrán un único id. de base de datos)
Usar País/Id. externo: Use id. externo cuando importa datos de una aplicación externa.
Cuando se usan identificadores externos, puede importar archivos CSV con la columna «Id. externo» para definir el id. externo de cada registro a importar. Entonces, podrá hacer referencia a ese registro con columnas del tipo «Id. de campo/externo». Los siguientes dos archivos son un ejemplo para los productos y sus categorías.
¿Qué puedo hacer si tengo múltiples coincidencias para un campo?¶
Si, por ejemplo, tiene dos categorías de productos con el nombre secundario «Se puede vender» (es decir, «Productos varios / Se puede vender» y «Otros productos / Se puede vender»), su validación se detiene, pero aún puede importar sus datos. Sin embargo, le recomendamos que no importe los datos porque todos estarán vinculados a la primera categoría “Se puede vender” que se encuentra en la lista de Categoría de producto («Productos varios / Se puede vender»). Le recomendamos que modifique uno de los valores duplicados o la jerarquía de su categoría de producto.
Sin embargo, si no desea cambiar la configuración de las categorías de productos, le recomendamos que utilice el ID externo para este campo “Categoría”.
¿Cómo puedo importar una relación uno a muchos (one2many - por ejemplo: las líneas de pedido del pedido de venta)?¶
Si desea importar un pedido de cliente con varias líneas de pedido; para cada línea de pedido, debe reservar una fila específica en el archivo CSV. La primera línea de pedido se importará en la misma fila que la información relativa al pedido. Cualquier línea adicional necesitará una fila adicional que no tenga ninguna información en los campos relacionados con el pedido. Como ejemplo, aquí está el archivo purchase.order_functional_error_line_cant_adpat.CSV
de algunas cotizaciones que puede importar, basado en datos de demostración.
El siguiente archivo CSV muestra como importar pedidos de compra con sus respectivas líneas de pedido de compra:
Purchase orders with their respective purchase order lines
.
El siguiente archivo CSV muestra cómo importar clientes y sus respectivos contactos:
¿Se puede importar varias veces el mismo registro?¶
If you import a file that contains one of the column «External ID» or «Database ID», records that have already been imported will be modified instead of being created. This is very useful as it allows you to import several times the same CSV file while having made some changes in between two imports. Odoo will take care of creating or modifying each record depending if it’s new or not.
Esta función le permite utilizar la herramienta de importación / exportación de Odoo para modificar un lote de registros en su aplicación de hoja de cálculo favorita.
¿Qué sucede si no proporciono un valor para un campo específico?¶
Si no ha establecido todos los campos en su archivo CSV, Odoo asignará el valor por defecto para cada uno de los campos no definidos. Pero si establece campos con valores vacíos en su archivo CSV, Odoo establecerá el valor VACÍO en el campo, en lugar de asignar el valor por defecto.
¿Cómo exportar / importar diferentes tablas desde una aplicación SQL a Odoo?¶
Si necesita importar datos de diferentes tablas, tendrá que volver a crear relaciones entre registros que pertenecen a diferentes tablas. (por ejemplo, si importa empresas y personas, tendrá que volver a crear el vínculo entre cada persona y la empresa para la que trabaja).
Para gestionar las relaciones entre tablas, puede utilizar las funciones de «ID externa» de Odoo. El «ID externo» de un registro es el identificador único de este registro en otra aplicación. Este «ID externo» debe ser único en todos los registros de todos los objetos, por lo que es una buena práctica anteponer este «ID externo» al nombre de la aplicación o tabla. (como “empresa_1”, “persona_1” en lugar de “1”)
As an example, suppose you have a SQL database with two tables you want to import: companies and
persons. Each person belong to one company, so you will have to recreate the link between a person
and the company he work for. (If you want to test this example, here is a dump of such a
PostgreSQL database
)
Se exportará primero todas las compañías y sus id. externos. En PSQL, escriba el siguiente comando:
> copy (select 'company_'||id as "External ID",company_name as "Name",'True' as "Is a Company" from companies) TO '/tmp/company.csv' with CSV HEADER;
Este comando SQL creará el siguiente archivo CSV:
External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True
Para crear un archivo CSV para personas, enlazadas a compañías, usaremos el siguiente comando SQL en PSQL:
> copy (select 'person_'||id as "External ID",person_name as "Name",'False' as "Is a Company",'company_'||company_id as "Related Company/External ID" from persons) TO '/tmp/person.csv' with CSV
Producirá el siguiente archivo CSV:
External ID,Name,Is a Company,Related Company/External ID
person_1,Fabien,False,company_1
person_2,Laurence,False,company_1
person_3,Eric,False,company_2
person_4,Ramsy,False,company_3
Como puede ver en este archivo, Fabien y Laurence están trabajando para la empresa Bigees (empresa_1) y Eric está trabajando para la empresa Organi. La relación entre personas y empresas se realiza utilizando el ID Externo de las empresas. Tuvimos que anteponer el «ID externo» al nombre de la tabla para evitar un conflicto de ID entre personas y empresas (person_1 y company_1 que compartían el mismo ID 1 en la base de datos original).
Los dos archivos producidos están listos para ser importados en Odoo sin ninguna modificación. Después de haber importado estos dos archivos CSV, tendrá 4 contactos y 3 compañías (los dos primeros contactos están enlazados a la primer compañía). Debe importar primero las compañías y luego los contactos.
Cómo adaptar una plantilla de importación¶
Las plantillas de importación se proporcionan en la herramienta de importación de los datos más comunes para importar (contactos, productos, extractos bancarios, etc.). Puede abrirlos con cualquier software de hojas de cálculo (Microsoft Office, OpenOffice, Google Drive, etc.).
Cómo customizar el archivo¶
Elimina las columnas que no necesitas. Recomendamos no eliminar el ID uno (vea por qué aquí abajo).
Establezca una identificación única para cada registro arrastrando hacia abajo la secuencia de identificación.
Al añadir una nueva columna, es posible que Odoo no pueda mapearlo automáticamente si la etiqueta no corresponde a ningún campo en el sistema. Si es así, encuentra el campo correspondiente usando la búsqueda.
Después utiliza la etiqueta que hayas encontrado en la plantilla de importación para poder hacer que funcione directamente la próxima vez que intentes importar.
Por qué una columna «ID»¶
El ID (ID Externo) es un identificador único por línea de artículo. Puedes usar el correspondiente a tu software anterior para facilitar la transición a Odoo.
Estableciendo un ID no es obligatorio cuando estás importando pero ayuda en muchos casos:
Actualiza importaciones: puedes importar el mismo archivo varias veces sin crear duplicados;
Importa campos de relación (ver a continuación).
Cómo importar campos de relación¶
Un objeto de Odoo siempre está relacionado con muchos otros objetos (por ejemplo, un producto está vinculado a categorías de productos, atributos, proveedores, etc.). Para importar esas relaciones, primero debe importar los registros del objeto relacionado desde su propio menú de lista.
Puedes hacerlo tanto usando el nombre del registro relacionado o su ID. El ID se espera cuando dos registros tienen el mismo nombre. En tal caso añade «/ID» al final del título de la columna (p.e. para atributos de producto: Atributos de Producto/Atributo/ID).