Openerp 如何在ODOO9中读取excel文件

Openerp 如何在ODOO9中读取excel文件,openerp,xls,odoo-9,odoo-10,Openerp,Xls,Odoo 9,Odoo 10,我有excel文件中的数据。如何逐行读取该文件并在数据库中插入数据?可能会添加上载控件,然后单击.py文件中的按钮逐行读取 例如: 1约翰·斯特恩 2迈克·霍克斯 3朱莉娅·马克斯 有什么例子吗?第一次,您需要确定您希望使用什么软件包来读取excel文件 我找到了这个网站(),你可以找到python包的小列表 在我的例子中,我使用了openpyxl import openpyxl from openerp import models, fields, api, _ from tempfile i

我有excel文件中的数据。如何逐行读取该文件并在数据库中插入数据?可能会添加上载控件,然后单击.py文件中的按钮逐行读取

例如:

1约翰·斯特恩

2迈克·霍克斯

3朱莉娅·马克斯


有什么例子吗?

第一次,您需要确定您希望使用什么软件包来读取excel文件

我找到了这个网站(),你可以找到python包的小列表

在我的例子中,我使用了openpyxl

import openpyxl
from openerp import models, fields, api, _
from tempfile import TemporaryFile

class ExcelReader(models.TransientModel):
    _name="reader_excel"

    excel_file = fields.Binary(string='Excel File')

    def import_excel(self):
        # Generating of the excel file to be read by openpyxl
        file = self.excel_file.decode('base64')
        excel_fileobj = TemporaryFile('wb+')
        excel_fileobj.write(file)
        excel_fileobj.seek(0)

        # Create workbook
        workbook = openpyxl.load_workbook(excel_fileobj, data_only=True)
        # Get the first sheet of excel file
        sheet = workbook[workbook.get_sheet_names()[0]]

        # Iteration on each rows in excel
        for row in sheet.rows:
            # Get value
            v1 = row[0].value 
            v2 = row[1].value 
            v3 = row[2].value 
            # Create your record 
            self.env['your_model'].creaate({'val1':v1,'val2':v2, 'val3':v3'})

这是一个小例子。你需要适应你的情况

Tnx需要帮助,一个问题是什么是安装openpyxl最简单的方法,我使用Ubuntu和eclipse。这是一个pip包,您可以使用sudo pip安装openpyxlTnx作为最后的注释,现在调用函数get-NameError:未定义全局名称“TemporaryFile”。很抱歉,我的错,我缺少tempfile import TemporaryFile中的一个导入