Exportera och importera data¶
I Odoo är det ibland nödvändigt att exportera eller importera data för att köra rapporter eller för att ändra data. Detta dokument behandlar export och import av data till och från Odoo.
Viktigt
Ibland stöter användare på ett ”time out”-fel eller så behandlas inte en post på grund av dess storlek. Detta kan inträffa med stora exporter eller i fall där importfilen är för stor. För att kringgå denna begränsning av posternas storlek kan du bearbeta exporten eller importen i mindre satser.
Exportera data från Odoo¶
När man arbetar med en databas är det ibland nödvändigt att exportera data i en separat fil. Detta kan underlätta vid rapportering av aktiviteter, men Odoo tillhandahåller ett exakt och enkelt rapporteringsverktyg med varje tillgänglig applikation.
Med Odoo kan värdena exporteras från vilket fält som helst i vilken post som helst. För att göra det, aktivera listvyn ( (list) icon), på de objekt som behöver exporteras, välj sedan de poster som ska exporteras. För att välja en post markerar du kryssrutan bredvid motsvarande post. Klicka slutligen på Actions och sedan på Export.

När du klickar på Export visas ett popover-fönster med Export Data med flera alternativ för de data som ska exporteras:

När alternativet Jag vill uppdatera data (importkompatibel export) är markerat visar systemet bara de fält som kan importeras. Detta är användbart i de fall då existerande poster måste uppdateras. Detta fungerar som ett filter. Om du lämnar rutan omarkerad får du många fler fältalternativ eftersom alla fält visas, inte bara de som kan importeras.
Vid export finns det möjlighet att exportera i två format:
.csv
och.xls
. Med.csv
separeras objekten med ett kommatecken, medan.xls
innehåller information om alla kalkylblad i en fil, inklusive både innehåll och formatering.Det här är de objekt som kan exporteras. Använd ikonen > (högerpil) för att visa fler underfältsalternativ. Använd fältet :guilabel:`Sök för att hitta specifika fält. För att använda alternativet Search mer effektivt, klicka på alla > (högerpilarna) för att visa alla fält.
Ikonknappen + (plustecken) finns för att lägga till fält i listan Fields to export.
Med ↕️ (uppåt- och nedåtpil) till vänster om de markerade fälten kan du flytta fälten uppåt och nedåt för att ändra den ordning i vilken de visas i den exporterade filen. Dra och släpp med hjälp av ikonen :guilabel:`↕️ (pil upp-ned).
Ikonen 🗑️ (papperskorg) används för att ta bort fält. Klicka på ikonen 🗑️ (papperskorg) för att ta bort fältet.
För återkommande rapporter är det bra att spara exportförinställningar. Markera alla fält som behövs och klicka på rullgardinsmenyn för mall. Där klickar du på Ny mall och ger den nyss skapade exporten ett unikt namn. Klicka på ikonen 💾 (diskettenhet) för att spara konfigurationen. Nästa gång samma lista behöver exporteras väljer du den relaterade mall som tidigare sparats i rullgardinsmenyn.
Tips
Det är bra att känna till fältets externa identifierare. Till exempel är Related Company i användargränssnittet för export lika med parent_id (extern identifierare). Detta är bra eftersom det enda data som exporteras då är det som ska modifieras och importeras på nytt.
Importera data till Odoo¶
Att importera data till Odoo är till stor hjälp under implementeringen, eller när data behöver uppdateras i bulk. Följande dokumentation beskriver hur man importerar data till en Odoo-databas.
Varning
Importer är permanenta och kan inte ångras. Det är dock möjligt att använda filter (created on
eller last modified
) för att identifiera poster som ändrats eller skapats av importen.
Tips
Aktivering av utvecklarläge ändrar de synliga importinställningarna i vänstermenyn. När du gör det visas en -meny. I denna avancerade meny finns två alternativ: Spåra historik under import och Tillåt matchning med underfält.

Om modellen använder openchatter kan alternativet Spåra historik under import skapa prenumerationer och skicka meddelanden under importen, men det leder till en långsammare import.
Om alternativet Allow matching with subfields är valt, används alla underfält inom ett fält för att matcha under Odoo Field vid import.
Kom igång med arbetet¶
Data kan importeras till alla Odoo-affärsobjekt med hjälp av antingen Excel (.xlsx
) eller CSV (.csv
) format. Detta inkluderar: kontakter, produkter, kontoutdrag, verifikat och order.
Open the view of the object to which the data should be imported/populated, click the (gear) icon and select Import records.

Click Import Template for Customers at the center of the page to download a template and populate it with the company’s own data. Such templates can be imported in one click since the data mapping is already preconfigured.
To upload the downloaded template or your own file, follow the next steps:
Click Upload Data File and select the desired file.
Adjust the Formatting options as needed (for CSV files only).
Ensure all data in the File Column is correctly mapped to the appropriate Odoo Field and free of errors.
(Optional) Click Load Data File to reload the same file or upload a different one.
Click Test to verify that the data is valid.
Click Import.
Observera
The Formatting options do not appear when importing the proprietary Excel file
type (i.e., .xls
or .xlsx
).
Anpassa en mall¶
Importmallar finns i importverktyget för de vanligaste uppgifterna som ska importeras (kontakter, produkter, kontoutdrag etc.). Öppna dem med valfritt kalkylbladsprogram (Microsoft Office, OpenOffice, Google Drive, etc.).
När mallen har laddats ner fortsätter du med att följa dessa steg:
Lägg till, ta bort och sortera kolumner så att de passar datastrukturen bäst.
Det rekommenderas starkt att inte ta bort kolumnen External ID (ID) (se varför i nästa avsnitt).
Ange ett unikt ID för varje post genom att dra ner ID-sekvenseringen i kolumnen Externt ID (ID).

Observera
När en ny kolumn läggs till kan det hända att Odoo inte kan mappa den automatiskt, om dess etikett inte passar något fält i Odoo. Nya kolumner kan dock mappas manuellt när importen testas. Sök i rullgardinsmenyn efter motsvarande fält.

Använd sedan fältets etikett i importfilen för att säkerställa att framtida importer lyckas.
Tips
Ett annat bra sätt att ta reda på vilka kolumnnamn som ska importeras är att exportera en exempelfil med de fält som ska importeras. På så sätt blir namnen korrekta om det inte finns någon mall för exempelimport.
Importera från ett annat program¶
Det External ID (ID) är en unik identifierare för raden. Använd gärna ett från tidigare programvara för att underlätta övergången till Odoo.
Det är inte obligatoriskt att ange ett ID vid import, men det underlättar i många fall:
Uppdatera import: importera samma fil flera gånger utan att skapa dubbletter.
För att återskapa relationer mellan olika poster bör den unika identifieraren från den ursprungliga applikationen användas för att mappa den till kolumnen External ID (ID) i Odoo.
När en annan post importeras som länkar till den första, använd XXX/ID (XXX/Externt ID) för den ursprungliga unika identifieraren. Denna post kan också hittas med hjälp av dess namn.
Varning
Det bör noteras att konflikter uppstår om två (eller flera) poster har samma External ID.
Fält saknas till kartkolumn¶
Odoo försöker heuristiskt hitta typen av fält för varje kolumn i den importerade filen, baserat på de första tio raderna i filerna.
Om det t.ex. finns en kolumn som bara innehåller siffror visas bara fälten med typen integer som alternativ.
Även om detta beteende kan vara fördelaktigt i de flesta fall är det också möjligt att det misslyckas, eller att kolumnen mappas till ett fält som inte föreslås som standard.
Om detta händer, kontrollera alternativet Visa fält för relationsfält (avancerat), så blir en fullständig lista över fält tillgänglig för varje kolumn.

Ändra format för dataimport¶
Observera
Odoo kan automatiskt upptäcka om en kolumn är ett datum och försöker då gissa datumformatet från en uppsättning av de vanligaste datumformaten. Även om denna process kan fungera för många datumformat, är vissa datumformat inte igenkännliga. Detta kan orsaka förvirring på grund av inverteringar av dag och månad; det är svårt att gissa vilken del av ett datumformat som är dagen och vilken del som är månaden i ett datum, till exempel ”01-03-2016”.
Vid import av en CSV-fil tillhandahåller Odoo Formatting-alternativ.
För att se vilket datumformat Odoo har hittat från filen, kontrollera Date Format som visas när du klickar på alternativ under filväljaren. Om detta format är felaktigt, ändra det till det önskade formatet med hjälp av ISO 8601 för att definiera formatet.
Viktigt
ISO 8601 är en internationell standard som omfattar världsomspännande utbyte och kommunikation av datum- och tidsrelaterade data. Till exempel bör datumformatet vara ”ÅÅÅÅÅ-MM-DD”. I fallet med den 24 juli 1981 bör det alltså skrivas som ”1981-07-24”.
Tips
När du importerar Excel-filer (.xls
, .xlsx
) bör du överväga att använda date-celler för att lagra datum. Detta bibehåller lokala datumformat för visning, oavsett hur datumet formateras i Odoo. När du importerar en CSV-fil, använd Odoos Formatting-avsnitt för att välja de datumformatkolumner som ska importeras.
Importera siffror med valutatecken¶
Odoo stöder fullt ut siffror med parenteser för att representera negativa tecken, liksom siffror med valutatecken kopplade till dem. Odoo känner också automatiskt av vilken tusentals-/decimalseparator som används. Om en valutasymbol som är okänd för Odoo används kan det hända att det inte känns igen som ett tal och importen kraschar.
Observera
När du importerar en CSV-fil visas menyn Formatting i den vänstra kolumnen. Under dessa alternativ kan Tousands Separator ändras.
Exempel på tal som stöds (med ”trettiotvå tusen” som siffra):
32.000,00
32000,00
32,000.00
-32000.00
(32000.00)
$ 32.000,00
(32000.00 €)
Exempel som inte kommer att fungera:
ABC 32.000,00
$ (32.000,00)
Viktigt
En () (parentes) runt talet anger att talet är ett negativt värde. Valutasymbolen måste placeras inom parentesen för att Odoo ska känna igen det som ett negativt valutavärde.
Förhandsgranskningstabell för import visas inte korrekt¶
Som standard är importförhandsgranskningen inställd på kommatecken som fältavgränsare och citattecken som textavgränsare. Om CSV-filen inte har dessa inställningar ändrar du Formatting-alternativen (visas under Import CSV-filfältet efter att du har valt CSV-filen).
Viktigt
Om CSV-filen har en tabulering som separator, upptäcker Odoo inte separationerna. Alternativen för filformatet måste ändras i kalkylbladsprogrammet. Se följande Ändra CSV-filformat avsnitt.
Ändra CSV filformat i kalkylbladsprogrammet¶
När du redigerar och sparar CSV-filer i kalkylbladsprogram tillämpas datorns regionala inställningar för separator och avgränsare. Odoo föreslår att du använder OpenOffice eller LibreOffice, eftersom båda programmen tillåter ändringar av alla tre alternativen (från LibreOffice-programmet, gå till
).Microsoft Excel kan ändra kodningen när du sparar (
).Skillnad mellan databas-ID och externt ID¶
Vissa fält definierar en relation till ett annat objekt. Till exempel är landet för en kontakt en länk till en post i objektet ”Country”. När sådana fält importeras måste Odoo återskapa länkar mellan de olika posterna. För att hjälpa till att importera sådana fält tillhandahåller Odoo tre mekanismer.
Viktigt
Endast en mekanism ska användas per fält som importeras.
För att till exempel hänvisa till landet för en kontakt föreslår Odoo tre olika fält att importera:
Country: landets namn eller kod
Country/Database ID: det unika Odoo-ID för en post, definierat av ID PostgreSQL-kolumnen
Country/External ID: ID för den här posten som refereras till i ett annat program (eller filen
.XML
som importerade den)
För landet Belgien, till exempel, använder du ett av dessa tre sätt att importera:
Land:
Belgien
Land/Databas-ID:
21
Land/Externt ID:
base.be
Beroende på företagets behov använder du ett av dessa tre sätt att referera till poster i relationer. Här följer ett exempel på när det ena eller det andra bör användas, beroende på behovet:
Använd Country: detta är det enklaste sättet när data kommer från CSV-filer som har skapats manuellt.
Använd Country/Database ID: detta bör sällan användas. Det används mest av utvecklare eftersom den största fördelen är att det aldrig uppstår konflikter (det kan finnas flera poster med samma namn, men de har alltid ett unikt databas-ID)
Använd Country/External ID: använd External ID när du importerar data från en tredjepartsapplikation.
När externa ID:n används importerar du CSV-filer med kolumnen `Externt ID (ID) som definierar det externa ID:t för varje post som importeras. Sedan kan en referens göras till den posten med kolumner som Field/External ID
. Följande två CSV-filer ger ett exempel på produkter och deras kategorier.
CSV-fil för kategorier <export_import_data/External_id_3rd_party_application_product_categories.csv>`
Importera relationsfält¶
Ett Odoo-objekt är alltid relaterat till många andra objekt (t.ex. är en produkt kopplad till produktkategorier, attribut, leverantörer etc.) För att importera dessa relationer måste posterna för det relaterade objektet importeras först, från deras egen listmeny.
Detta kan uppnås genom att använda antingen namnet på den relaterade posten eller dess ID, beroende på omständigheterna. ID förväntas när två poster har samma namn. I sådana fall lägger du till / ID
i slutet av kolumnrubriken (t.ex. för produktattribut: Produktattribut / Attribut / ID
).
Alternativ för flera matcher på fält¶
Om det t.ex. finns två produktkategorier med undernamnet Säljbar
(t.ex. Mellanprodukter/Säljbar
& Övriga produkter/Säljbar
), stoppas valideringen, men uppgifterna kan fortfarande importeras. Odoo rekommenderar dock att uppgifterna inte importeras eftersom de alla kommer att länkas till den första ”säljbara” kategorin som finns i listan Product Category (Misc. Products/Sellable
). Odoo rekommenderar istället att man ändrar ett av duplikatets värden eller produktkategorihierarkin.
Om företaget inte vill ändra konfigurationen av produktkategorier rekommenderar Odoo dock att man använder Externt ID för detta fält, ”Kategori”.
Importera fält för many2many-relationer¶
Taggarna ska separeras med ett kommatecken, utan något mellanrum. Om en kund t.ex. behöver länkas till båda taggarna: ”Tillverkare” och ”Återförsäljare”, måste ”Tillverkare, Återförsäljare” kodas i samma kolumn i CSV-filen.
Importera one2many-relationer¶
Om ett företag vill importera en försäljningsorder med flera orderrader måste en specifik rad reserveras i CSV-filen för varje orderrad. Den första orderraden importeras på samma rad som den information som är relaterad till ordern. Eventuella ytterligare rader behöver en extra rad som inte har någon information i fälten som är relaterade till ordern.
Här är ett exempel på en CSV-fil med några citat som kan importeras, baserat på demodata:
Fil för några offerter <export_import_data/purchase.order_functional_error_line_cant_adpat.csv>`
Följande CSV-fil visar hur man importerar inköpsorder med sina respektive inköpsorderrader:
Följande CSV-fil visar hur man importerar kunder och deras respektive kontakter:
Import image files¶
To import image files along with the uploaded CSV or Excel file, follow the next steps:
Add the image file names to the relevant Image column in the data file.
Upload the data file or reload it by clicking Load Data File.
Click Upload your files under the Files to import section.
Select the relevant image files. The number of files selected appears next to the button.
Click Test to verify that all data is valid.
Click Import. During the import process, Odoo performs a file check to automatically link the uploaded images to the imported data file. If there is no match, the data file is imported without any image.
Observera
The Files to import section is enabled if your product template has an Image column with all fields populated.
The image file names in the data file must correspond to the uploaded image files.
When importing a large number of images, you can specify the maximum batch size in megabytes and set a delay to prevent the system from becoming overloaded. To do so, enable the developer mode and fill in the Max size per batch and the Delay after each batch fields in the Files to import section. By default, the delay meets the RPC/API call limit defined in the Odoo Cloud - Acceptable Use Policy.
Importera poster flera gånger¶
Om en importerad fil innehåller en av kolumnerna: Externt ID eller Databas-ID, ändras poster som redan har importerats i stället för att skapas. Detta är mycket användbart eftersom det gör det möjligt för användare att importera samma CSV-fil flera gånger, samtidigt som de har gjort vissa ändringar mellan två importer.
Odoo tar hand om att skapa eller modifiera varje post, beroende på om den är ny eller inte.
Denna funktion gör det möjligt för ett företag att använda Import/Export-verktyget i Odoo för att ändra ett antal poster i ett kalkylbladsprogram.
Värdet anges inte för ett specifikt fält¶
Om alla fält inte är inställda i CSV-filen tilldelar Odoo standardvärdet för varje icke-definierat fält. Men om fält anges med tomma värden i CSV-filen, anger Odoo det tomma värdet i fältet i stället för att tilldela standardvärdet.
Exportera/importera olika tabeller från en SQL-applikation till Odoo¶
Om data behöver importeras från olika tabeller måste relationerna mellan poster som tillhör olika tabeller återskapas. Om t.ex. företag och personer importeras måste länken mellan varje person och det företag som personen arbetar för återskapas.
För att hantera relationer mellan tabeller använder du Odoos External ID
-funktioner. Det externa ID:t för en post är den unika identifieraren för denna post i en annan applikation. Det ”externa ID:t” måste vara unikt för alla poster i alla objekt. Det är en god praxis att prefixa detta ”externa ID” med namnet på applikationen eller tabellen. (t.ex. ’company_1’, ’person_1’ - i stället för ’1’)
Som ett exempel kan vi anta att det finns en SQL-databas med två tabeller som ska importeras: företag och personer. Varje person hör till ett företag, så länken mellan en person och det företag som personen arbetar för måste återskapas.
Testa detta exempel med en prov av en PostgreSQL-databas
.
Exportera först alla företag och deras Externt ID. Skriv följande kommando i PSQL:
> 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;
Detta SQL-kommando skapar följande CSV-fil:
External ID,Name,Is a Company
company_1,Bigees,True
company_2,Organi,True
company_3,Boum,True
För att skapa filen CSV för personer kopplade till företag använder du följande SQL-kommando i 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
Den producerar följande CSV-fil:
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
I den här filen arbetar Fabien och Laurence för företaget Bigees (företag_1) och Eric arbetar för företaget Organi. Relationen mellan personer och företag görs med hjälp av Externt ID för företagen. Det externa ID:t föregås av tabellens namn för att undvika en ID-konflikt mellan personer och företag (person_1
och företag_1
, som delade samma ID 1 i den ursprungliga databasen).
De två filerna som produceras är redo att importeras i Odoo utan några ändringar. Efter att ha importerat dessa två CSV-filer finns det fyra kontakter och tre företag (de två första kontakterna är länkade till det första företaget). Tänk på att först importera företagen och sedan personerna.
Uppdatera data i Odoo¶
Befintliga data kan uppdateras i bulk genom en dataimport, så länge som Externt ID förblir konsekvent.
Förbereda dataexport¶
För att uppdatera data genom en import, navigera först till de data som ska uppdateras och välj (list) icon för att aktivera listvyn. Längst till vänster i listan markerar du kryssrutan för den post som ska uppdateras. Klicka sedan på Actions och välj Export från rullgardinsmenyn.
I popup-fönstret Export Data som visas markerar du kryssrutan Jag vill uppdatera data (importkompatibel export). Detta inkluderar automatiskt Externt ID i exporten. Dessutom begränsas listan Fields to export till att endast innehålla fält som kan importeras.
Observera
Fältet Externt ID visas inte i listan Fält att exportera om det inte läggs till manuellt, men det ingår ändå i exporten. Om kryssrutan Jag vill uppdatera data (importkompatibel export) är markerad ingår det dock i exporten.
Select the required fields to be included in the export using the options on the pop-up window, then click Export.
Importera uppdaterade data¶
After exporting, make any necessary changes to the data file. When the file is ready, it can be imported by following the same process as a normal data import.
Risk
Vid uppdatering av data är det mycket viktigt att Externt ID förblir konsekvent, eftersom det är så systemet identifierar en post. Om ett ID ändras eller tas bort kan systemet lägga till en duplikatpost i stället för att uppdatera den befintliga.