Odoo 电子表格中插入列表、透视表和图表的完整指南
插入并链接 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 菜单项、同一电子表格的其他工作表或外部 URLinsert financial data <spreadsheet/insert/financial-data>,通过 Odoo 专用的电子表格functions <work_with_data/functions>从数据库中获取财务数据- 直接将其他 Odoo 电子表格、Excel 表格或 Google Sheet 中的数据粘贴到任意 Odoo 电子表格中
数据源 {#spreadsheet/insert/data-sources}
每次将 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-listSee list properties或oi-view-pivotSee pivot properties,即可打开属性面板;或点击已插入图表右上角的fa-bars(menu)图标,再点fa-pencil-square-oEdit。 - 打开的属性面板在切换工作表标签时保持打开;关闭方式是点击面板右上角的
fa-times(close)。 - 点击面板顶部的
fa-thumb-tack(pin)可让另一个面板(如全局过滤器面板)并排显示。
::::
:::: note
::: title
注意
:::
删除已插入的列表或透视表,或删除其所在工作表,并不会删除底层的数据源。只能通过数据源属性面板删除数据源。
Data 菜单中会对已不再出现在电子表格中的列表/透视表发出警告。
删除已插入的图表时,会同时删除其底层数据源。
::::
访问底层数据 {#spreadsheet/insert/accessing-data}
随时可以访问已插入列表、透视表或图表的底层数据:
- 对 已插入列表 的单元格,右键所在行并选择
fa-eyeSee record查看该记录 - 对 已插入透视表 的单元格,右键并选择
fa-eyeSee records查看该单元格引用的记录列表 - 对 已插入图表 的数据点,直接点击该点查看对应记录
:::: tip
::: title
技巧
:::
使用中键或 [Ctrl] + 左键点击(Windows/Linux)或 [Command] + 左键点击(Mac)可在新标签页打开结果。
::::
返回电子表格时,点击页面顶部面包屑中的电子表格名称。
插入列表 {#spreadsheet/insert/list}
:::: important
::: title
重要
:::
插入列表前,请确保列表已根据实际需求进行定制,包括可见字段、过滤和排序方式。这会影响加载时间和用户体验。
::::
插入列表的步骤:
在数据库中打开相应的列表视图,点击视图名称旁的
fa-cog(Actions)图标,选择Spreadsheet -->oi-view-listInsert list in spreadsheet。:::: note ::: title 注意 ::: 若只想插入特定记录,先选中这些记录,再点击页面上方居中的
fa-cogActions按钮,然后选择oi-view-listInsert in spreadsheet。
:::弹出窗口中,如有需要可编辑
Name of the list(列表名称会用于工作表名称及list properties中)。如有需要,可编辑要插入的记录数(行数)。默认显示的是列表第一页可见的记录数,例如列表共 150 条但只显示 80 条,则此处显示 80。
::::: note ::: title 注意 ::: 列表会随数据库同步更新,但不会自动扩展以容纳新增记录(如新增产品类别或销售员)。若预计会有新增记录,建议在插入时多预留几行;也可以在插入后手动
add records。::: example 假设公司已有 10 个产品类别并已插入列表,随后第 11 个类别创建后,若列表只有 10 行,则新类别会覆盖已有行,导致数据错位。解决办法是插入时多加几行。
::: :::::点击
Blank spreadsheet创建新电子表格,或选择已有电子表格进行插入。:::: note ::: title 注意 ::: 若在新电子表格中插入列表,电子表格会保存在 Odoo Documents 应用的
fa-hdd-oMy Drive个人文件夹中。
:::点击
Confirm。
列表将被插入到电子表格的新工作表中,工作表标签显示列表名称及列表 ID,例如 Quotations by Total (List #1)。右侧面板显示 list properties。
:::: tip ::: title 技巧 :::
- 若想断开列表与数据库的关联,可全选列表后右键
fa-clipboardCopy,再右键Paste special --> Paste as value。 - 请勿修改工作表名称中的列表 ID,系统会依据该 ID 调用相应的
spreadsheet functions。
::::
列函数 {#spreadsheet/insert/list-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。
::::
列属性 {#spreadsheet/insert/list-properties}
右侧属性面板在插入列表后自动显示,亦可通过 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 Duplicate 或 fa-trash Delete。
管理已插入的列表 {#spreadsheet/insert/list-manage}
插入后,可进行以下操作:
- add records(添加行)
- add fields(添加列)
- duplicate(复制列表)
- delete(删除列表及其数据源)
添加记录/行 {#spreadsheet/insert/list-add-records}
选中表格最后一行,移动到蓝色方块上出现加号图标,点击并拖动向下可一次添加多行,新行会自动填入对应的
list functions公式。将光标置于工作表左上角单元格,点击
Data --> Re-insert list,选择对应列表,在弹窗中填写要插入的记录数,点击Confirm,系统会重新插入并覆盖原列表。
:::: tip
::: title
技巧
:::
上述方法也可用于在表格中添加空白行,以便后续手动填充。适用于预期会有新增记录的场景(如新产品类别、新销售员)。
::::
添加字段/列 {#spreadsheet/insert/list-add-fields}
选中新列应插入位置左/右侧的列。
点击
Insert -->os-insert-colInsert column,再选择os-insert-col-beforeColumn left或os-insert-col-afterColumn right,或右键同样操作。复制任意列的表头单元格,粘贴到新列表头并回车。
双击新表头单元格,点击公式末尾的字段名称(引号内),会弹出该模型所有技术字段名称的列表,选择后回车,列标签即显示对应字段的中文标签。
选中表头后,双击右下角的蓝色小方块,整列会被填充相应的
list functions公式,若数据库中有对应数据,则会显示出来。
:::: tip
::: title
技巧
:::
要查找字段的技术名称,可在对应视图中开启 开发者模式,将鼠标悬停在字段标签旁的问号上,即可看到技术名称。
::::
复制列表 {#spreadsheet/insert/list-duplicate}
在列表属性面板中点击 fa-cog → fa-clone Duplicate,系统会创建一个新的数据源(下一个可用的列表 ID),但不会自动插入到工作表中。若需要插入,可:
- 点击底部左侧的
os-plus(add sheet)新建工作表。 - 在菜单栏选择
Data --> Re-insert list,选中刚复制的列表。 - 填写要插入的记录数,点击
Confirm。 - 如有需要,可在属性面板编辑
List Name。 - 右键工作表标签选择
Rename重命名工作表。
:::: note
::: title
注意
:::
直接复制粘贴已插入的列表或复制所在工作表,并不会创建新的数据源,所有副本仍共享同一数据源,属性修改会同步影响所有副本。
::::
删除列表 {#spreadsheet/insert/list-delete}
完整删除列表及其数据源的步骤(顺序不限):
- 删除工作表中的表格(键盘快捷键、菜单或直接删除工作表),这会去除可视化数据。
- 在列表属性面板点击
fa-cog→fa-trashDelete,这会删除数据源本身。
插入透视表 {#spreadsheet/insert/pivot-table}
:::: tip
::: title
技巧
:::
将已插入的透视表转换为 dynamic pivot table <work_with_data/dynamic_pivot_tables>,即可添加、删除、调整维度(行列)和度量值。建议先插入基础透视表,再转换为动态透视表后进行细化。
::::
插入步骤:
- 在数据库中打开相应的透视视图,点击
Insert in Spreadsheet。 - 弹窗中如有