插入并链接 Odoo 数据

可以将 Odoo 数据库中的多种元素插入到 Odoo 电子表格中,包括:

  • 列表,即 list view <studio/views/multiple-records/list> 中的数据
  • 透视表,即 pivot view <studio/views/reporting/pivot> 中的数据
  • 图表,即 graph view <studio/views/reporting/graph> 中的数据

:::: note ::: title 注意 ::: 不同应用和模型的列表、透视表、图表可以插入到同一个电子表格中。
::::

每次插入列表、透视表或图表时,都会创建一个 data source <spreadsheet/insert/data-sources>。该数据源将电子表格与 Odoo 数据库连接,在打开电子表格、刷新浏览器页面或手动点击 Data --> os-refresh-data Refresh all data 时,都会检索最新信息。

Inserted lists <spreadsheet/insert/list>inserted pivot tables <spreadsheet/insert/pivot-table> 使用带有 Odoo 特定 list functions <spreadsheet/insert/list-functions>pivot table functions <spreadsheet/insert/pivot-table-functions-static> 的公式从数据库获取数据,随后可以在电子表格中进一步操作。inserted charts <spreadsheet/insert/chart> 的某些元素可以修改,但无法进行数据运算或计算。

:::: tip ::: title 技巧 ::: 如果想使用 global filters <work_with_data/global_filters> 在电子表格或仪表盘中动态过滤 Odoo 数据,请不要使用相同的条件在数据库中建立初始列表、透视表或图表。
::::

还可以:

  • add clickable links <spreadsheet/insert/clickable-links> 到 Odoo 菜单项、同一电子表格的其他工作表或外部 URL
  • insert financial data <spreadsheet/insert/financial-data>,通过 Odoo 专用的电子表格 functions <work_with_data/functions> 从数据库中获取财务数据
  • 直接将其他 Odoo 电子表格、Excel 表格或 Google Sheet 中的数据粘贴到任意 Odoo 电子表格中

每次将 list <spreadsheet/insert/list>pivot table <spreadsheet/insert/pivot-table>chart <spreadsheet/insert/chart> 插入 Odoo 电子表格时,都会创建数据源,将电子表格与数据库中相应的 model <../../studio/models_modules_apps> 关联,保证数据实时更新,并允许 access the underlying data <spreadsheet/insert/accessing-data>

数据源的属性可通过 Data 菜单访问。数据源在 Data 菜单中以对应的 oi-view-pivot(透视表)、oi-view-list(列表)或 fa-bar-chart(图表)图标显示,后跟其 ID 与名称,例如 oi-view-pivot *(#1) 销售分析(按产品)*

点击数据源会在电子表格右侧打开属性面板。

:::: tip ::: title 技巧 :::

  • 右键单击已插入的列表或透视表的任意单元格,选择 oi-view-list See list propertiesoi-view-pivot See pivot properties,即可打开属性面板;或点击已插入图表右上角的 fa-bars (menu) 图标,再点 fa-pencil-square-o Edit
  • 打开的属性面板在切换工作表标签时保持打开;关闭方式是点击面板右上角的 fa-times (close)
  • 点击面板顶部的 fa-thumb-tack (pin) 可让另一个面板(如全局过滤器面板)并排显示。
    ::::

:::: note ::: title 注意 ::: 删除已插入的列表或透视表,或删除其所在工作表,并不会删除底层的数据源。只能通过数据源属性面板删除数据源。
Data 菜单中会对已不再出现在电子表格中的列表/透视表发出警告。

删除已插入的图表时,会同时删除其底层数据源。
::::

随时可以访问已插入列表、透视表或图表的底层数据:

  • 已插入列表 的单元格,右键所在行并选择 fa-eye See record 查看该记录
  • 已插入透视表 的单元格,右键并选择 fa-eye See records 查看该单元格引用的记录列表
  • 已插入图表 的数据点,直接点击该点查看对应记录

:::: tip ::: title 技巧 ::: 使用中键或 [Ctrl] + 左键点击(Windows/Linux)或 [Command] + 左键点击(Mac)可在新标签页打开结果。
::::

返回电子表格时,点击页面顶部面包屑中的电子表格名称。

:::: important ::: title 重要 ::: 插入列表前,请确保列表已根据实际需求进行定制,包括可见字段、过滤和排序方式。这会影响加载时间和用户体验。
::::

插入列表的步骤:

  1. 在数据库中打开相应的列表视图,点击视图名称旁的 fa-cog (Actions) 图标,选择 Spreadsheet --> oi-view-list Insert list in spreadsheet

    :::: note ::: title 注意 ::: 若只想插入特定记录,先选中这些记录,再点击页面上方居中的 fa-cog Actions 按钮,然后选择 oi-view-list Insert in spreadsheet
    :::

  2. 弹出窗口中,如有需要可编辑 Name of the list(列表名称会用于工作表名称及 list properties 中)。

  3. 如有需要,可编辑要插入的记录数(行数)。默认显示的是列表第一页可见的记录数,例如列表共 150 条但只显示 80 条,则此处显示 80。

    ::::: note ::: title 注意 ::: 列表会随数据库同步更新,但不会自动扩展以容纳新增记录(如新增产品类别或销售员)。若预计会有新增记录,建议在插入时多预留几行;也可以在插入后手动 add records

    ::: example 假设公司已有 10 个产品类别并已插入列表,随后第 11 个类别创建后,若列表只有 10 行,则新类别会覆盖已有行,导致数据错位。解决办法是插入时多加几行。
    ::: :::::

  4. 点击 Blank spreadsheet 创建新电子表格,或选择已有电子表格进行插入。

    :::: note ::: title 注意 ::: 若在新电子表格中插入列表,电子表格会保存在 Odoo Documents 应用的 fa-hdd-o My Drive 个人文件夹中。
    :::

  5. 点击 Confirm

列表将被插入到电子表格的新工作表中,工作表标签显示列表名称及列表 ID,例如 Quotations by Total (List #1)。右侧面板显示 list properties

:::: tip ::: title 技巧 :::

  • 若想断开列表与数据库的关联,可全选列表后右键 fa-clipboard Copy,再右键 Paste special --> Paste as value
  • 请勿修改工作表名称中的列表 ID,系统会依据该 ID 调用相应的 spreadsheet functions
    ::::

插入列表后,系统使用以下函数获取表头和字段值:

=ODOO.LIST.HEADER(list_id, field_name)
=ODOO.LIST(list_id, index, field_name)

参数说明:

  • list_id:插入时分配的列表 ID,首个列表为 1,第二个为 2,依此类推。
  • index:记录在列表中的行号,从 1 开始。
  • field_name:字段的技术名称。

:::: tip ::: title 技巧 ::: 点击单元格可在公式栏看到对应公式;若想一次性显示所有公式,可在菜单栏选择 View --> fa-eye Show --> Formulas


::::

右侧属性面板在插入列表后自动显示,亦可通过 Data 菜单点击对应列表(图标前缀 oi-view-list)或右键列表任意位置选择 oi-view-list See list properties 打开。

可编辑/查看的属性包括:

  • List #:列表 ID,按插入顺序递增。

  • List Name:列表名称,可编辑。编辑属性面板中的名称不会同步修改工作表标签中的名称,反之亦然。

  • Model:数据来源的模型。

  • Columns:插入时可见的字段。

  • Domain:决定显示哪些记录的规则。点击 Edit domain <search/custom-filters> 可添加或编辑规则。

    :::: note ::: title 注意 ::: 使用 global filters 时,此 domain 会与全局过滤器的选中值合并后再加载数据。
    :::

  • Sorting:排序方式(升序/降序),可通过 Add 添加规则,点击 fa-times 删除。

duplicate <spreadsheet/insert/list-duplicate>delete <spreadsheet/insert/list-delete> 数据源,点击属性面板右上角的 fa-cog,再选择 fa-clone Duplicatefa-trash Delete

插入后,可进行以下操作:

  • add records(添加行)
  • add fields(添加列)
  • duplicate(复制列表)
  • delete(删除列表及其数据源)
  • 选中表格最后一行,移动到蓝色方块上出现加号图标,点击并拖动向下可一次添加多行,新行会自动填入对应的 list functions 公式。

  • 将光标置于工作表左上角单元格,点击 Data --> Re-insert list,选择对应列表,在弹窗中填写要插入的记录数,点击 Confirm,系统会重新插入并覆盖原列表。

:::: tip ::: title 技巧 ::: 上述方法也可用于在表格中添加空白行,以便后续手动填充。适用于预期会有新增记录的场景(如新产品类别、新销售员)。
::::

  1. 选中新列应插入位置左/右侧的列。

  2. 点击 Insert --> os-insert-col Insert column,再选择 os-insert-col-before Column leftos-insert-col-after Column right,或右键同样操作。

  3. 复制任意列的表头单元格,粘贴到新列表头并回车。

  4. 双击新表头单元格,点击公式末尾的字段名称(引号内),会弹出该模型所有技术字段名称的列表,选择后回车,列标签即显示对应字段的中文标签。

  5. 选中表头后,双击右下角的蓝色小方块,整列会被填充相应的 list functions 公式,若数据库中有对应数据,则会显示出来。

:::: tip ::: title 技巧 ::: 要查找字段的技术名称,可在对应视图中开启 开发者模式,将鼠标悬停在字段标签旁的问号上,即可看到技术名称。
::::

在列表属性面板中点击 fa-cogfa-clone Duplicate,系统会创建一个新的数据源(下一个可用的列表 ID),但不会自动插入到工作表中。若需要插入,可:

  1. 点击底部左侧的 os-plus (add sheet) 新建工作表。
  2. 在菜单栏选择 Data --> Re-insert list,选中刚复制的列表。
  3. 填写要插入的记录数,点击 Confirm
  4. 如有需要,可在属性面板编辑 List Name
  5. 右键工作表标签选择 Rename 重命名工作表。

:::: note ::: title 注意 ::: 直接复制粘贴已插入的列表或复制所在工作表,并不会创建新的数据源,所有副本仍共享同一数据源,属性修改会同步影响所有副本。
::::

完整删除列表及其数据源的步骤(顺序不限):

  • 删除工作表中的表格(键盘快捷键、菜单或直接删除工作表),这会去除可视化数据。
  • 在列表属性面板点击 fa-cogfa-trash Delete,这会删除数据源本身。

:::: tip ::: title 技巧 ::: 将已插入的透视表转换为 dynamic pivot table <work_with_data/dynamic_pivot_tables>,即可添加、删除、调整维度(行列)和度量值。建议先插入基础透视表,再转换为动态透视表后进行细化。
::::

插入步骤:

  1. 在数据库中打开相应的透视视图,点击 Insert in Spreadsheet
  2. 弹窗中如有