导出功能:制作导入模板的基础

如何导出?

  1. 进入你想要操作的模型的列表视图(比如,联系人、产品、销售订单列表)。
  2. 选中一条或多条记录(哪怕是示例数据也行)。
  3. 点击列表上方的 “操作” (Action) 菜单,选择 “导出” (Export)

导出对话框详解:

  • ① 我想更新数据 (可导入的导出)这是最重要的选项! 勾选它,导出的文件中会包含一个名为 id (或 External ID) 的特殊列。这个 ID是 Odoo 用于识别每一条记录的唯一标识符,是后续更新数据的关键。如果你只是想导出一份报告,可以不勾选。但为了制作导入模板,必须勾选
  • ② 可用字段: 左侧是当前模型所有可以导出的字段,包括关联模型的字段(比如在销售订单里,可以导出客户的“城市”字段)。
  • ③ 要导出的字段: 右侧是你最终要导出到文件中的列。你可以从左侧添加,或从右侧移除。
  • ④ 文件格式: 通常选择 Excel (.xlsx) 或 CSV。建议优先使用 Excel,因为它对格式处理更友好。如果数据量巨大或有特殊字符问题,可以尝试用 UTF-8 编码的 CSV。

可以使用外部ID来找到Odoo中的记录

  • 在Excel中如果某行id列为空,Odoo则认为这是一条新纪录,并尝试创建它
  • 如果某行id列有值,Odoo则认为这是要更新一条已存在的记录,并寻找对应的记录进行修改

导入顺序(依赖关系原则)

基本原则:先导入“被依赖”的主数据,再导入“依赖于它”的业务数据。

利用外部 ID 串联数据

  1. 用户 (Users): 如果需要的话。
  2. 会计科目表 (Chart of Accounts): 如果使用会计模块。
  3. 产品类别 (Product Categories)
  4. 计量单位 (Units of Measure)
  5. 产品 (Products): 依赖于“产品类别”和“计量单位”。
  6. 合作伙伴/客户/供应商 (Partners/Customers/Vendors)
  7. 期初库存 (Initial Inventory / Stock Quantities): 依赖于“产品”。
  8. 未完成的销售订单 (Open Sales Orders): 依赖于“客户”和“产品”。
  9. 未完成的采购订单 (Open Purchase Orders): 依赖于“供应商”和“产品”。
  10. 应收账款期初 (Open Accounts Receivable Invoices): 依赖于“客户”和“会计科目”。
  11. 应付账款期初 (Open Accounts Payable Bills): 依赖于“供应商”和“会计科目”。

以导入产品数据与期初库存为例:

  1. 从Odoo中导出产品模板
  2. 在模板中为每一个产品创建一个简单易记的外部ID
  3. 导入这些产品。Odoo会创建这些产品,并记录下你为它们指定的外部ID。
  4. 进入【库存】->【操作】->【库存调整】,创建一个新的库存调整单,然后导出模板
  5. 在product_id/id列中填入上面指定的外部ID
  6. 导入这个文件,Odoo会通过外部ID准确找到对应产品

先导入主数据并定义好外部ID,再在后续文件中引用这些ID


也可以使用非外部ID的任一具有唯一性质的字段关联

使用file_name/related_field_name语法

odoo_file_name/file_to_search_on_in_related_model

核心原则:

“/”前的部分:告诉Odoo你想填充哪个目标字段。
“/”后的部分:告诉Odoo拿着你Excel单元格里的值,去目标模型 (product.product) 的哪个字段里进行搜索。