Odoo 20 Spreadsheet: New Features and Improvements

Discover Odoo 20 Spreadsheet improvements for data analysis, formulas, charts, formatting, and connected business reporting.

Odoo 20 Spreadsheet introduces new features that make it easier to analyze data, create reports, and organize information. Bubble charts help compare multiple values across categories, while calendar charts make it easier to identify patterns over time. Calculated columns let you perform calculations directly within dynamic lists, and new formulas provide more ways to work with data.

Alongside these major updates, Odoo 20 brings improvements to chart customization, conditional formatting, pivot tables, global filters, and data management. Features such as named ranges, sheet locking, and template access controls also give you more flexibility when working with spreadsheets. This guide explores these updates, explains how to configure them, and shows how they can help you create clearer reports and work with data more efficiently.

New Features

What's New in Odoo 20 Spreadsheet?

Three improvements stand out for teams that build reports and dashboards. Here is the short version before we go through each one step by step.

Bubble charts

Show data with both numbers and categories in one chart.

Calendar charts

See how values change from day to day on a calendar layout.

Calculated columns

Add a column to a dynamic list that is calculated from other columns.

Besides these, Odoo 20 Spreadsheet includes many smaller updates. Each one is explained in its own section below:

Chart annotations

Add notes to a chart to give readers more context.

Chart suggestions

Get chart ideas from your selected columns with Data analysis.

Pie slice colors

Set the color of each slice of a pie chart.

Axis min and max

Set minimum and maximum values for the x and y axes.

Multiple figure selection

Move several figures at once or turn charts into a carousel.

Custom format

Define your own formats for dates and numbers.

Scientific notation

Format numbers in scientific notation.

Conditional formatting

Date-based rules and a new Top/Bottom ranking option.

Sheet background colors

Set a background color on the entire sheet grid.

Zoom in/out

Adjust the view of a spreadsheet with the zoom control.

Print settings

Set print options and check them in Print Preview.

Column statistics

Quick statistics for a column from the Data menu.

Data cleanup

Remove unused data sources, duplicates and extra whitespace.

Named ranges

Label cells or ranges and use the names in formulas.

Manual recalculation

Turn off automatic recalculation and press F9 when needed.

Lock sheets

Lock an entire sheet to prevent modifications.

Formula syntax

Curly brackets for arrays and the spill range operator (#).

Regex formulas

REGEXTEST and REGEXREPLACE to test and replace text.

New functions

New lookup, statistical and text functions.

Pivot improvements

Pivot domain, table styles, expand/collapse and tabular view.

List insertion

Insert a dynamic list directly from a spreadsheet.

Property fields in lists

Property fields in a list view are included when inserted.

Global filters

Default operators and filters created from data source properties.

Reduced JSON size

Downloaded JSON files use a more compact formula structure.

Template access

Limit template visibility and access to defined user groups.

Top menu navigation

Open top menus with keyboard shortcuts and arrow keys.

Mobile pinch to zoom

Pinch to zoom in the grid on a mobile device.

General Spreadsheet Chart Workflow

Every chart in this guide is created the same way. Follow these steps once, then use the sections below to see what data and settings each chart type needs.

  1. Open a spreadsheet in Documents.
  2. Select the required data range.
  3. Go to Insert ▸ Chart.
  4. Select the required chart type.
  5. Configure the chart properties.
  6. Save the spreadsheet.
Odoo 20 Spreadsheet interface for business data analysis and reporting
01

Bubble Charts

Odoo 20 adds bubble charts, used to display data with both quantitative and categorical values. In a bubble chart, each bubble is one item. Its position and size usually show numbers, such as revenue, margin or order count, while its color or label can show the category it belongs to.

Why It Matters?
Some data has more than one story: how much, how profitable, and which group it belongs to. A bubble chart lets you read these together in one picture, so you can spot the standouts without building several separate charts. Use it when a decision depends on comparing groups, such as which sales teams deserve attention.

When should you use it?

  • Compare groups on several measures: revenue, margin and order count for each sales team, product line or region in one view.
  • Find outliers: a team with high revenue but thin margin, or a small team with an unusually strong one.

Skip it when
you only have one or two numbers (a bar or line chart is simpler), or when there are so many categories that the bubbles overlap.

Before you start: prepare the data

A few one-time steps get your data ready before you insert the chart.

  1. Make sure the Spreadsheet is available in your database. It is part of Odoo Documents.
  2. Prepare a table with at least two number columns and one category column, for example revenue, margin and sales team. A dynamic list or pivot table from your Odoo data works well.
  3. Open the spreadsheet in Documents and select the whole table, including the header row, so every column is available when you configure the chart.
Odoo 20 Spreadsheet calendar chart for visualizing date-based data
Odoo 20 Spreadsheet bubble chart for comparing data across multiple dimensions

How to create a bubble chart in Odoo Spreadsheet

  1. Insert the chart: go to Documents, open your spreadsheet, select the data, then click Insert ▸ Chart.
  2. In the chart settings, open Chart type and choose Bubble (listed under Miscellaneous).
  3. Choose the values for the horizontal and vertical positions, then fill the Bubble sizes range (the column that sets each bubble's size) and the Bubble labels range (the column that names each bubble, such as the sales team).
  4. Check the legend and titles so readers know what each axis and bubble size means, then save.
Chart elementWhat it shows
Horizontal positionA number, such as revenue
Vertical positionA second number, such as margin
Bubble sizeA third number, such as the count of orders
Color or labelThe category, such as the sales team
02

Calendar Charts

Odoo 20 adds calendar charts. A calendar chart lays values out by date, and the color of each day usually shows how high or low the value is. It is a quick way to spot trends such as busy weekdays, slow weekends or a sudden peak.

Why It Matters?
Many business numbers follow the calendar: orders by day, tasks by weekday, tickets by week. A calendar chart shows these patterns at a glance, so busy and quiet days are easy to see without reading every row. Use it when the question is when something happens, not just how much.

When should you use it?

  • Look for timing patterns: busy weekdays, seasonal peaks and quiet periods in orders, tasks or tickets.
  • Plan around the calendar: use the pattern to schedule staff, stock or follow-ups.

Skip it when
you need the exact value for every day. A list or pivot table is better for that.

Before you start: prepare the data

There is very little to configure, since the chart reads data you already have.

  1. Make sure your data has a date column and a value column, such as the order date and the number of orders.
  2. Check that the dates are real dates and not plain text, so the chart can place each value on the right day.
  3. Select the date column and the value column, including the header row.
Odoo 20 Spreadsheet formula editor for entering spreadsheet functions

How to create a calendar chart in Odoo Spreadsheet

  1. Insert the chart: go to Documents, open your spreadsheet, select the date and value columns, then click Insert ▸ Chart.
  2. In the chart settings, open Chart type and choose Calendar.
  3. Choose the horizontal and vertical grouping, for example Day of Week across and Month down. Each square is one period, and its color shows the value.
  4. Give the chart a clear title that says what the colors mean.
  5. Read the result: look for darker days, repeating weekday patterns and gaps, then add the chart to your report or dashboard.
Odoo 20 Spreadsheet calculated columns for processing table data
Odoo 20 Spreadsheet global filters panel for filtering business data
StepWhere to find it
Prepare dates and valuesYour sheet, list or pivot table
Insert the chartInsert menu, then Chart
Choose the chart typeChart settings panel ▸ Chart type ▸ Calendar
03

Calculated Columns in Dynamic Lists

In Odoo 20, it is now possible to add calculated columns in dynamic lists. Instead of working out values elsewhere, you add a column to the list and define it with a formula based on the other columns. The result sits next to your Odoo data in the same list.

When should you use it?

  • Derive a figure from other columns: totals, margins or differences that should update together with the Odoo data.
  • Keep the calculation visible: anyone opening the report can see how the number was worked out.

Skip it when
the value must be stored in Odoo itself, for example to use in other apps. A calculated column lives in the spreadsheet.

Before you start: prepare the list

A few steps get the list ready.

  1. Insert a dynamic list from the Odoo model you want to analyze: open Insert ▸ List ▸ Odoo list, pick the model, and click Save.
  2. Decide what the new column should show, for example quantity multiplied by unit price.
  3. Note the field names your formula will use, such as amount_total or the quantity and unit price fields of the model.
Odoo 20 Spreadsheet named range configuration for referencing cell ranges
Odoo 20 Spreadsheet sheet protection settings for preventing unwanted edits

How to add a calculated column to a dynamic list

A dynamic list reads its data from Odoo and keeps it up to date.

  1. Open the list panel: go to Documents, open your spreadsheet, and select the list to open its side panel.
  2. Under Columns in the side panel, click Add and mark the new column as calculated.
  3. Name the column clearly, then write the formula using the row's other field names. For example, amount_total*0.05 creates a 5% commission column.
  4. Check the results. The calculated column follows the list, so the values stay in step with your Odoo data.
Odoo 20 Spreadsheet cell formatting options for value orientation
Odoo 20 Spreadsheet displayed on a mobile device with pinch-to-zoom
FieldWhere to find it
Dynamic listSpreadsheet, inserted from an Odoo model
Calculated columnList side panel ▸ Columns ▸ Add (mark as calculated)
FormulaBased on the other columns of the same list

How dynamic Odoo data stays updated ?

When a list, pivot table or chart is inserted from Odoo, the spreadsheet creates a data source connected to the underlying Odoo data. The linked data can be refreshed when the spreadsheet is opened or reloaded, and it can also be refreshed manually from Data ▸ Refresh all data (confirm the exact label in your own database). To remove data sources a spreadsheet no longer uses, open Data ▸ Data cleanup ▸ Remove unused data sources.

04

Chart Annotations

Add annotations to a chart to give readers more context or an explanation of what they are looking at.

How to configure

  1. Select the chart in your spreadsheet to open its configuration panel.
  2. Find the annotation option and type the note you want to show with the chart.
  3. Check that the note is readable next to the data, then save the spreadsheet.
05

Chart Suggestions (Data Analysis)

Get chart suggestions from the columns you select, using the Data analysis feature.

How to configure

  1. Select the columns that hold the data you want to chart, including the header row.
  2. Open Data ▸ Data analysis.
  3. Review the suggested charts and pick the one that fits your question, then save.
06

Pie Chart Slice Colors

Define the color of each slice of a pie chart instead of relying on the default palette.

How to configure

  1. Insert a pie chart: select the data, then click Insert ▸ Chart and choose the pie type.
  2. Open the chart configuration panel and go to its style options.
  3. Pick a color for each slice, then save.
07

Axis Minimums and Maximums

Set minimum and maximum values for the x and y axes to better highlight your data.

How to configure

  1. Select a chart that has axes, such as a bar, line or scatter chart.
  2. In the configuration panel, open the axis options.
  3. Enter the minimum and maximum you want, then check the chart and save.
08

Multiple Selection on Figures

Select several figures (images, charts or carousels) to reposition them at once, or select several charts to create a carousel.

How to configure

  1. Click the first figure, then hold Ctrl (Cmd on Mac) and click the others.
  2. Drag the selection to reposition all selected figures together.
  3. With several charts selected, choose the option to create a carousel.
09

Custom Format

Define your own formats for dates and numbers.

How to configure

  1. Select the cells with the dates or numbers.
  2. Open Format ▸ Number and choose the custom format option.
  3. Enter the format you want and apply it.
10

Scientific Notation

Format numbers in scientific notation.

How to configure

  1. Select the cells with the numbers.
  2. Open Format ▸ Number.
  3. Choose the scientific notation format.
11

Conditional Formatting Based on Dates

Apply conditional formatting rules based on dates.

How to configure

  1. Select the range of date cells.
  2. Open Format ▸ Conditional formatting and add a new rule.
  3. Choose a date-based condition, set the formatting style and save the rule.
12

Top/Bottom Ranking

The new Is in Top/Bottom ranking option formats cells according to their rank in the range.

How to configure

  1. Select the range of numbers.
  2. Open Format ▸ Conditional formatting and add a new rule.
  3. Choose Is in Top/Bottom ranking, set how many items to rank and pick the style.
13

Sheet Background Colors

Set a background color on the entire sheet grid.

How to configure

  1. Open the sheet you want to change.
  2. Open the sheet options and choose the background color setting.
  3. Pick a color and check that your data is still easy to read.
14

Zoom In and Out

Zoom in or out to adjust the view of a spreadsheet.

How to configure

  1. Open your spreadsheet.
  2. Use the zoom control in the toolbar (it shows 100 % by default).
  3. Choose the zoom level that you want.
15

Print Settings

Define print settings for a spreadsheet or dashboard and preview any changes in the new Print Preview window.

How to configure

  1. Open the spreadsheet or dashboard you want to print.
  2. Open the print settings and adjust them.
  3. Check the result in the Print Preview window before printing.
16

Column Statistics

Get quick statistics for a column from the Data menu.

How to configure

  1. Select the column you want to look at.
  2. Open Data ▸ Column statistics.
  3. Read the statistics shown for that column.
17

Data Cleanup

Remove unused data sources from the Data cleanup menu. The same submenu also lists Remove duplicates and Trim whitespace.

How to configure

  1. Open Data ▸ Data cleanup.
  2. Choose Remove unused data sources to remove sources the spreadsheet no longer uses.
  3. Save the spreadsheet.
18

Named Ranges

Add labels to cells or ranges, then use those names in formulas or to structure your spreadsheet.

How to configure

  1. Select the cell or range you want to name.
  2. Open Data ▸ Named ranges and add a name for the selection.
  3. Use the name in a formula instead of the cell references.
19

Disable Automatic Recalculation

Turn off the automatic recalculation of formulas and recalculate manually by pressing F9. This can help in large spreadsheets.

How to configure

  1. Open the spreadsheet settings and turn off automatic recalculation.
  2. Work on your data as usual; formulas will not update on their own.
  3. Press F9 whenever you want to recalculate.
20

Lock Sheets

Lock an entire sheet to prevent modifications.

How to configure

  1. Open the sheet you want to protect.
  2. Use the sheet options (for example from the sheet tab) and choose the lock option.
  3. Try editing a cell to confirm the sheet is locked.
21

Curly Brackets

Use curly brackets, {}, to create arrays or as a custom formula parser.

How to configure

  1. Click a cell and start a formula with =.
  2. Type your values inside curly brackets, for example =SUM({1,2,3}).
  3. Press Enter to see the result.
22

Spill Range Operator

When a function such as SEQUENCE returns a spilled array, use the spill range operator (#) to reference the whole spill range from a single cell.

How to configure

  1. In cell A1, type =SEQUENCE(5). The five values spill into the cells below.
  2. In another cell, type =SUM(A1#).
  3. The # makes the formula follow the full spill range, even if its size changes.
23

Regex Formulas

The REGEXTEST and REGEXREPLACE formulas let you test and replace text using regular expressions.

How to configure

  1. Click a cell and type =REGEXTEST(text, pattern) to check whether the text matches the pattern.
  2. Use =REGEXREPLACE(text, pattern, replacement) to replace the matching part.
  3. Press Enter and check the result.
24

New Functions

New functions were added in the lookup, statistical and text categories.

CategoryNew functions
LookupCHOOSE, DROP, FORMULATEXT, TAKE
StatisticalCHISQ.TEST, CONFIDENCE.NORM, F.TEST, GEOMEAN, HARMEAN, KURT, SKEW, TRIMMEAN
TextARRAYTOTEXT

How to configure

  1. Click a cell and start typing the function name, for example TAKE.
  2. Choose it from the suggestions and fill in its arguments.
  3. Press Enter to see the result.
25

Pivot Domain

Add a Domain to a pivot table created from a range of spreadsheet data, to filter the data by values or by criteria.

How to configure

  1. Select the pivot table to open its side panel.
  2. Open the Domain setting and add the filter by values or by criteria.
  3. Confirm and check that the pivot updates.
26

Pivot Table Styles

Customize the appearance of a pivot table with the style options in the side panel, or apply a specific style to it.

How to configure

  1. Select the pivot table.
  2. In the side panel, open the style options.
  3. Choose a style or adjust the options.
27

Expand and Collapse All

Expand or collapse all groups at once in dynamic pivots.

How to configure

  1. Open the spreadsheet containing a dynamic pivot table.
  2. Right-click any cell inside the pivot table.
  3. From the context menu, select Expand all to expand all grouped rows or Collapse all to collapse them.
28

Nested and Tabular Views

In dynamic pivot tables, switch between the nested view and the tabular view, which flattens the row dimensions.

How to configure

  1. Open the spreadsheet containing the dynamic pivot table.
  2. Select the pivot table to open its side panel.
  3. In the side panel, open the Layout options.
  4. Choose Nested to display row dimensions in a hierarchical structure.
  5. Choose Tabular to display each row dimension in a separate column.
29

List Insertion

Insert a dynamic list directly from a spreadsheet.

How to configure

  1. Open your spreadsheet in Documents.
  2. Go to Insert ▸ List ▸ Odoo list.
  3. Pick the model and save.
30

Property Fields in Lists

Property fields that are visible in a list view are now included when you insert that list into an Odoo spreadsheet.

How to configure

  1. Make sure the property fields are visible in the list view in Odoo.
  2. Insert the list into the spreadsheet.
  3. Check that the property columns appear with the other columns.
31

Default Operators for Global Filters

Set the default operator of a global filter.

How to configure

  1. Open a spreadsheet and click Filters in the top-right corner.
  2. Create a new global filter or select an existing one to edit its settings.
  3. Choose the filter type and configure the relevant field.
  4. Set the default operator from the available options.
  5. Save the filter and test it to verify that the selected operator is applied by default.
32

Global Filters from Data Source Properties

Create a global filter from the properties of a data source by selecting the field to filter on directly.

How to configure

  1. Open a spreadsheet containing a dynamic list, pivot table, or chart.
  2. Select the data source to open its side panel.
  3. Open the Configuration tab and locate the relevant field in the data source properties.
  4. Select the option to create a global filter for that field.
  5. Configure the filter and apply it to the relevant data.
  6. Test the filter to confirm that it filters the data as expected.
33

Reduced JSON File Size

Downloaded JSON files use a more compact formula structure, reducing file size and making the exported data lighter.

How to configure

  1. Open the spreadsheet you want to export.
  2. Open the File menu and select the JSON download option, if available.
  3. Save the downloaded JSON file.
  4. Compare it with a JSON file exported from an earlier version to check the changes in formula structure and file size.
34

Template Access

Limit the visibility of, and access to, templates to defined user groups.

How to configure

  1. Open the relevant template.
  2. Locate the template's access rights or visibility settings.
  3. Select the user groups allowed to access the template.
  4. Save the changes and verify that users outside the selected groups cannot access it.
35

Top Menu Navigation

Use keyboard shortcuts to open the top menus, then move through them with the arrow keys and the Enter and Escape keys.

How to configure

  1. Press the keyboard shortcut to open a top menu.
  2. Move with the arrow keys.
  3. Press Enter to pick an item or Escape to close the menu.
36

Mobile: Pinch to Zoom

Pinch to zoom in the grid when using Spreadsheet on a mobile device.

How to configure

  1. Open the spreadsheet on your mobile device.
  2. Place two fingers on the grid.
  3. Move them apart to zoom in or together to zoom out.

How These Features Change the Spreadsheet Workflow

Taken together, the direction of Odoo 20 Spreadsheet is more analysis inside one place, with less copying of data between tools:

Here is how a typical reporting workflow can flow. Not every report needs every step:

  1. Prepare Odoo data: decide which Odoo model and fields the report needs.
  2. Insert data into the spreadsheet: add a dynamic list, pivot table or chart from Odoo.
  3. Calculate or manipulate the data: add calculated columns to work out totals, margins or differences.
  4. Visualize with charts: use a bubble chart to compare groups and a calendar chart to see daily patterns.
  5. Analyze the results: look for outliers, busy days and trends.
  6. Share or use in a dashboard: share the spreadsheet, or convert it into a dashboard for your team.

Odoo 20 Spreadsheet brings practical improvements for anyone who builds reports in Odoo. Bubble charts compare numbers and categories in one view, calendar charts reveal patterns over time, and calculated columns keep your formulas inside the dynamic list. Together, they make reporting in Odoo more connected and easier to understand.

The smaller updates add control over every step of a report. Chart annotations, custom colors and axis limits make charts clearer; custom formats and date or ranking rules make tables easier to read; named ranges, regex and the new functions make formulas more powerful; and sheet locking, template access and manual recalculation help you protect and manage your work.

Frequently Asked Questions

Odoo 20 Spreadsheet introduces improvements to data visualization, spreadsheet functions, data management, and usability. Notable updates include new chart types, calculated columns, global filters, named ranges, sheet protection, and additional formula functions. The exact capabilities available should be verified against your Odoo 20 edition and installed modules.

Odoo 20 introduces calendar and bubble charts, expanding the ways users can visualize business information. Calendar charts can help present date-based patterns, while bubble charts can compare multiple data dimensions. Their usefulness depends on the structure and quality of the underlying data.

Odoo 20 includes additional spreadsheet formula capabilities that help users perform calculations and analyze business data. The supported functions depend on the spreadsheet engine and version. Consult the official Odoo 20 release notes to confirm the exact function names before using them in business-critical spreadsheets.

Global filters help users filter relevant spreadsheet data using shared criteria, such as dates or other supported dimensions. They can make reports easier to explore without manually changing multiple data sources. The available filter types depend on the spreadsheet and its connected data sources.

Odoo 20 includes spreadsheet sheet-locking capabilities that can help prevent unwanted changes to protected sheets. This is useful when sharing reports or templates that contain important formulas. Users should verify the available locking options and permissions in their installed version.

Businesses should test existing spreadsheet formulas, pivot tables, charts, global filters, linked Odoo data, access permissions, and custom reporting workflows. Important reports should be validated in a test environment before the production upgrade to identify compatibility issues and confirm that business results remain accurate.
ODOO 20 MIGRATION & IMPLEMENTATION

Ready to Move to Odoo 20?

Build a smarter, more scalable Odoo experience for your business.

Whether you are planning an Odoo 20 migration, launching a new eCommerce website, or need customization, integrations, or ongoing support, our Odoo experts can help you plan and implement the right solution for your business.

Improve Business Reporting with Odoo

Need help configuring Odoo spreadsheets, dashboards, or business reporting? Explore implementation and customization services from GritXi Technologies.

Explore Odoo Services

Get GritXi's Expertise

Sign in to leave a comment
Oct 21, 2026

Odoo 20 Time Off & Payroll: Features and Updates

Odoo 20 introduces useful improvements to Time Off and Payroll, helping businesses manage employee leave requests and payroll operations more efficiently. These updates simplify everyday HR activities...
Oct 19, 2026

Odoo 20 Barcode: New Features and Updates

The Odoo 20 Barcode application helps warehouse teams process receipts, deliveries, internal transfers, and inventory counts using barcode scanning. The latest updates focus on improving operational c...
Oct 19, 2026

Odoo 20 WhatsApp: New Features and Updates

Think about your own phone. You use WhatsApp every day, right? Your customers do too. That is why many businesses now talk to customers on WhatsApp. They send order updates, reminders and quick answer...