Odoo Help


How to import csv file on odoo

Drees Far
on 7/23/15, 7:40 AM 1,660 views

Hello friends!!

I have tried this for you!!

Who can help me enrich this code as a work team ;)


< class="oe_web_example_message">Press to upload!/h3>

<p class="oe_web_example_file">

<input type="file" id="fileUpload" name="file" />

<button>entire file</button>


<p class="oe_web_example_filesa" id="dvCSV">

<textarea name="dvCSVs" rows="4" cols="50"></textarea>





openerp.test_paie = function (instance)


var QWeb = instance.web.qweb;

var _t = instance.web._t;

instance.seetek_paie.Mywidget = instance.web.form.FormWidget.extend(instance.web.form.ReinitializeWidgetMixin,{

template : "seetek_paie.Mywidget",

events: {

'click .oe_web_example_file button': 'Upload',


Upload: function () {

var fileUpload = document.getElementById("fileUpload");

var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.csv|.txt)$/;

if (regex.test(fileUpload.value.toLowerCase())) {

if (typeof (FileReader) != "undefined") {

var reader = new FileReader();

var tabResult = new Array();

reader.onload = function (e) {

var table = document.createElement("table");

var rows = e.target.result.split("\n");

var y = new Array();

var matricule = new Array();

for (var i = 0; i < (rows.length - 1); i++) {

var row = table.insertRow(-1);

var cells = rows[i].split(",");

if (cells[0] != 0)

{ var mat = cells[0];}

console.log("La" + i + "ème matricule est \n"+ mat);

if (cells[0]!= "")


// Affiche doc

for (var j = 0; j < cells.length; j++) {

var cell = row.insertCell(-1);

cell.innerHTML = cells[j];




var days = new Array();

var heures = new Array();

for (var i = 1; i < rows.length; i++) {

var row = table.insertRow(-1);

var cells = rows[i].split(",");

days = rows[0].split(",");

var obj = {};

var obj2 = {};

for (var j = 0; j < cells.length; j++) {

obj2[j] = cells[j];


obj[i] = obj2;



var my_jsons_days;

var my_jsons_days_all = new Array();

var oups;

for (var i = 0; i < (rows.length - 2); i++) {

var my_jsons_days_all_temp = new Array();

for (var dd = 1; dd < days.length; dd++) {

var z;

if (heures[i][i+1][dd] > 0) { z = 'T';} else {z = 'A'; }

my_jsons_days = {"day":days[dd],"hours":heures[i][i+1][dd],"nature":z};



oups = {"days": my_jsons_days_all_temp};

var jsonStrssEM = JSON.stringify(oups);


var node = document.createElement("LI");

var textnode = document.createTextNode(jsonStrssEM);




var dvCSV = document.getElementById("dvCSV");

dvCSV.innerHTML = "";




} else {

alert("This browser does not support HTML5.");


} else {

alert("Please upload a valid CSV file.");




instance.web.form.custom_widgets.add('momo1', 'instance.test_paie.Mywidget');


Ihave tried it to upload a csv file and then make some treatment.

I didnt finish it yet you can use it and change it as you want ;)

Hello. First, use the code markup, and indent your code, please. Then, why doing a widget, when you can import csv files through the regular interface ? Did you read the documentation ?

on 7/23/15, 8:21 AM

Hi Drees, I have did custom modules to import the csv of bank statements, bill of materials (based on some conditions) etc. For both odoo 8 and 7. I did using a wizard and file object to read content from csv and functions to write the content to database. I can help you, if you have any doubts: akhilpsivan@outlook.com. And PY, if you want to check some conditions or do some process before importing data, its not possible through regular interface.

Akhil P Sivan
on 7/23/15, 11:01 AM

can you post your code to use

Drees Far
on 7/23/15, 1:23 PM
On 7/23/15, 10:32 AM

Do you have to add the widget or something in your "columns" from your .py file?Or in your __openerp__.py?

In the xml file it would be something like this: <field name="name"  widget="MyWidget" />?

Drees Far
On 7/23/15, 10:47 AM

In the __openerp__.py file, you have to add attributes like this:

js': ['static/src/js/xxxxx.js'],

'css': ['static/src/css/xxxxxx.css'],

'qweb': ['static/src/xml/xxxxxxx.xml'],

Like in this link:


About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

1 follower(s)


Asked: 7/23/15, 7:40 AM
Seen: 1660 times
Last updated: 7/28/15, 9:43 AM