2017-05-11 8 views
2

私はExcelファイルにデータを持っています。そのファイルを行単位で読み込み、データをデータベースに挿入するには?アップロード制御を追加し、.pyファイル内のボタンをクリックした後、行単位で読み込みます。odooでファイルを読み取る方法9

1ジョン・スターン

2マイクのHox

3ジュリア・マックス

どれ例:たとえば

答えて

2

初めて、Excelファイルを読むためにどのようなパッケージを使用したいかを決定する必要があります。

私はこのウェブサイト()を見つけました。あなたは少しのpythonパッケージのリストを見つけることができます。私の場合は

私はそれは少し例です

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'}) 

openpyxl使用。あなたの状況に適応する必要があります。

+0

Tnx for help、1つの質問openpyxlをインストールする最も簡単な方法は、私はUbuntuとEclipseを使用しています。 –

+0

これはピップパッケージです。あなたはsudo pip install openpyxlを使うことができます。 – jo541

+0

最後のコメントのためにTnxを呼び出して、関数呼び出し後にNameErrorを取得します:グローバル名 'TemporaryFile'は定義されていません。 –

関連する問題