odoo17 导入excel一次性修改多条记录代码
时间: 2024-12-11 22:30:36 浏览: 12
在Odoo 17中,导入Excel并批量修改多条记录通常涉及到读取Excel文件的数据,然后通过Python脚本操作数据库。以下是一个简单的示例,展示如何使用`odoo.addons.base.models.csv_import`模块来实现这个功能:
```python
from odoo import models, fields, api
class YourModel(models.Model):
_name = 'your.model.name'
column1 = fields.Char()
column2 = fields.Integer()
@api.multi
def import_data_from_excel(self, excel_file):
# 加载csv数据
data = self.env['base.xls.sheet'] \
.import_data(file=excel_file, model_name='your.model.name', file_type='excel')
for record in data:
# 遍历导入的数据行
line = {
'column1': record.get('column1'), # 根据实际字段名替换
'column2': record.get('column2') # 或者使用record['field_name']
}
# 获取当前记录(如果存在)
existing_record = self.search([('id', '=', record.id)])
# 如果找到现有记录,则更新;否则创建新记录
if existing_record.exists():
existing_record.write(line)
else:
self.create(line)
return True
# 使用时,假设你有一个名为'your_file.xlsx'的Excel文件
file_path = 'path/to/your_file.xlsx'
your_model_obj = YourModel.browse([])
your_model_obj.import_data_from_excel(open(file_path, 'rb'))
```
请注意,你需要将上述代码中的`YourModel`、`column1`、`column2`以及路径替换为你实际模型和表单的名称,并确保Excel文件格式和字段对应。
阅读全文