Spreadsheet Oca

spreadsheet_oca
REPOSITORY
REPOSITORYOCA/spreadsheet
GIT
GIThttps://github.com/OCA/spreadsheet.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/spreadsheet/tree/18.0/spreadsheet_oca
VERSION
VERSION 1.3.1
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), CreuBlanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), CreuBlanca
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, tarteo, Florent THOMAS, oca-ci, Carlos Roca, CarlosRoca13, christian-ramos-tecnativa, Chris Mann, HItesh Jadav
WEBSITE
WEBSITEhttps://github.com/OCA/spreadsheet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:18
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - spreadsheet
    - bus
    - base
    - web
    - portal
    - web_editor
    - html_editor
    - http_routing
    - mail
    - base_setup
    - web_tour
    - auth_signup
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds a functionality for adding and editing Spreadsheets
using Odoo CE.

It is an alternative to the proprietary module `spreadsheet_edition` of
Odoo Enterprise Edition.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
spreadsheet_select_row_number_form_view spreadsheet.select.row.number.form spreadsheet.select.row.number form New
spreadsheet_spreadsheet_form_view spreadsheet.spreadsheet.tree (in spreadsheet_oca) spreadsheet.spreadsheet form New
spreadsheet_spreadsheet_import_form_view spreadsheet.spreadsheet.import.form (in spreadsheet_oca) spreadsheet.spreadsheet.import form New
spreadsheet_spreadsheet_kanban_view spreadsheet.spreadsheet.kanban spreadsheet.spreadsheet kanban New
spreadsheet_spreadsheet_search_view spreadsheet.spreadsheet.search (in spreadsheet_oca) spreadsheet.spreadsheet search New
spreadsheet_spreadsheet_tree_view spreadsheet.spreadsheet.tree (in spreadsheet_oca) spreadsheet.spreadsheet list New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (9)

New fields (0)

No new fields.

Public methods (1)
  • has_parent_relation(self, model_name)
    @api.model
    Return if the model has a parent relation.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (5)
  • active Boolean
    default=True
  • name Char
    required=True
  • spreadsheet_binary_data Binary
    default=<expr> string='Spreadsheet file'
  • spreadsheet_raw Serialized
    compute='_compute_spreadsheet_raw' inverse='_inverse_spreadsheet_raw'
  • spreadsheet_revision_ids One2many → spreadsheet.oca.revision
    domain=<expr> inverse_name='res_id' args: 'spreadsheet.oca.revision'
Public methods (4)
  • get_spreadsheet_data(self)
  • open_spreadsheet(self)
  • send_spreadsheet_message(self, message: CollaborationMessage, access_token=None)
  • write(self, vals)

New fields (7)
  • client_id Char
  • commands Char
  • model Char
    required=True
  • next_revision_id Char
  • res_id Integer
    index=True required=True
  • server_revision_id Char
  • type Char
Public methods (0)

No public methods.

New fields (2)
  • dynamic_rows Boolean
  • number_of_rows Integer
Public methods (0)

No public methods.

New fields (9)
  • badge_image Image
    max_height=1024 max_width=1024 args: 'Badge Background'
  • company_id Many2one → res.company
    comodel_name='res.company' help='If set, the spreadsheet will be available only if this company is in the current companies.'
  • contributor_group_ids Many2many → res.groups
    column1='spreadsheet_id' column2='group_id' relation='spreadsheet_group_contributor' string='Contributors Groups' args: 'res.groups'
  • contributor_ids Many2many → res.users
    column1='spreadsheet_id' column2='user_id' relation='spreadsheet_contributor' string='Contributors' args: 'res.users'
  • filename Char
    compute='_compute_filename'
  • owner_id Many2one → res.users
    default=<expr> required=True args: 'res.users'
  • reader_group_ids Many2many → res.groups
    column1='spreadsheet_id' column2='group_id' relation='spreadsheet_group_reader' string='Readers Groups' args: 'res.groups'
  • reader_ids Many2many → res.users
    column1='spreadsheet_id' column2='user_id' relation='spreadsheet_reader' string='Readers' args: 'res.users'
  • spreadsheet_tag_ids Many2many → spreadsheet.spreadsheet.tag
    comodel_name='spreadsheet.spreadsheet.tag' string='Tags'
Public methods (1)
  • create_document_from_attachment(self, attachment_ids)

New fields (10)
  • can_be_dynamic Boolean
  • datasource_name Char
  • dynamic Boolean
    help='This field allows you to generate tables that its rows are updated with the filters set in the spreadsheets.' args: 'Dynamic Rows'
  • import_data Serialized
  • is_tree Boolean
  • mode Char
    related='mode_id.code'
  • mode_id Many2one → spreadsheet.spreadsheet.import.mode
    default=<expr> required=True args: 'spreadsheet.spreadsheet.import.mode'
  • name Char
  • number_of_rows Integer
  • spreadsheet_id Many2one → spreadsheet.spreadsheet
    args: 'spreadsheet.spreadsheet'
Public methods (1)
  • insert_pivot(self)

New fields (4)
  • code Char
    required=True
  • group_ids Many2many → res.groups
    args: 'res.groups'
  • name Char
    required=True translate=True
  • sequence Integer
    default=20
Public methods (0)

No public methods.

New fields (2)
  • color Integer
    default=_get_default_color help='Transparent tags are not visible in the kanban view'
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/spreadsheet
GIT
GIThttps://github.com/OCA/spreadsheet.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/spreadsheet/tree/17.0/spreadsheet_oca
VERSION
VERSION 1.0.6
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), CreuBlanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), CreuBlanca
COMMITTERS
COMMITTERSPedro M. Baeza, Enric Tobella, Weblate, OCA-git-bot, oca-ci, CarlosRoca13, r.perez, christian-ramos-tecnativa, Chris Mann
WEBSITE
WEBSITEhttps://github.com/OCA/spreadsheet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - spreadsheet
    - bus
    - base
    - web
    - portal
    - web_editor
    - http_routing
    - mail
    - base_setup
    - web_tour
    - auth_signup
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module adds a functionality for adding and editing Spreadsheets
using Odoo CE.

It is an alternative to the proprietary module `spreadsheet_edition` of
Odoo Enterprise Edition.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
spreadsheet_select_row_number_form_view spreadsheet.select.row.number.form spreadsheet.select.row.number form New
spreadsheet_spreadsheet_form_view spreadsheet.spreadsheet.tree (in spreadsheet_oca) spreadsheet.spreadsheet form New
spreadsheet_spreadsheet_import_form_view spreadsheet.spreadsheet.import.form (in spreadsheet_oca) spreadsheet.spreadsheet.import form New
spreadsheet_spreadsheet_search_view spreadsheet.spreadsheet.search (in spreadsheet_oca) spreadsheet.spreadsheet search New
spreadsheet_spreadsheet_tree_view spreadsheet.spreadsheet.tree (in spreadsheet_oca) spreadsheet.spreadsheet tree New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (7)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (4)
  • name Char
    required=True
  • spreadsheet_binary_data Binary
    default=<expr> string='Spreadsheet file'
  • spreadsheet_raw Serialized
    compute='_compute_spreadsheet_raw' inverse='_inverse_spreadsheet_raw'
  • spreadsheet_revision_ids One2many → spreadsheet.oca.revision
    domain=<expr> inverse_name='res_id' args: 'spreadsheet.oca.revision'
Public methods (4)
  • get_spreadsheet_data(self)
  • open_spreadsheet(self)
  • send_spreadsheet_message(self, message)
  • write(self, vals)

New fields (7)
  • client_id Char
  • commands Char
  • model Char
    required=True
  • next_revision_id Char
  • res_id Integer
    index=True required=True
  • server_revision_id Char
  • type Char
Public methods (0)

No public methods.

New fields (5)
  • can_have_dynamic_cols Boolean
  • dynamic_cols Boolean
  • dynamic_rows Boolean
  • number_of_cols Integer
  • number_of_rows Integer
Public methods (0)

No public methods.

New fields (7)
  • company_id Many2one → res.company
    comodel_name='res.company' help='If set, the spreadsheet will be available only if this company is in the current companies.'
  • contributor_group_ids Many2many → res.groups
    column1='spreadsheet_id' column2='group_id' relation='spreadsheet_group_contributor' string='Contributors Groups' args: 'res.groups'
  • contributor_ids Many2many → res.users
    column1='spreadsheet_id' column2='user_id' relation='spreadsheet_contributor' string='Contributors' args: 'res.users'
  • filename Char
    compute='_compute_filename'
  • owner_id Many2one → res.users
    default=<expr> required=True args: 'res.users'
  • reader_group_ids Many2many → res.groups
    column1='spreadsheet_id' column2='group_id' relation='spreadsheet_group_reader' string='Readers Groups' args: 'res.groups'
  • reader_ids Many2many → res.users
    column1='spreadsheet_id' column2='user_id' relation='spreadsheet_reader' string='Readers' args: 'res.users'
Public methods (1)
  • create_document_from_attachment(self, attachment_ids)

New fields (13)
  • can_be_dynamic Boolean
  • can_have_dynamic_cols Boolean
  • datasource_name Char
  • dynamic Boolean
    help='This field allows you to generate tables that its rows are updated with the filters set in the spreadsheets.' args: 'Dynamic Rows'
  • dynamic_cols Boolean
    help='This field allows you to generate tables that its cols are updated with the filters set in the spreadsheets.' args: 'Dynamic Columns'
  • import_data Serialized
  • is_tree Boolean
  • mode Char
    related='mode_id.code'
  • mode_id Many2one → spreadsheet.spreadsheet.import.mode
    default=<expr> required=True args: 'spreadsheet.spreadsheet.import.mode'
  • name Char
  • number_of_cols Integer
    args: 'Number of Columns'
  • number_of_rows Integer
  • spreadsheet_id Many2one → spreadsheet.spreadsheet
    args: 'spreadsheet.spreadsheet'
Public methods (1)
  • insert_pivot(self)

New fields (4)
  • code Char
    required=True
  • group_ids Many2many → res.groups
    args: 'res.groups'
  • name Char
    required=True translate=True
  • sequence Integer
    default=20
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/spreadsheet
GIT
GIThttps://github.com/OCA/spreadsheet.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/spreadsheet/tree/16.0/spreadsheet_oca
VERSION
VERSION 1.9.2
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), CreuBlanca
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), CreuBlanca
COMMITTERS
COMMITTERSHolger Brunn, Sylvain LE GAL, Enric Tobella, Roy Le, Weblate, OCA-git-bot, oca-ci, Nguyễn Đại Dương, Carlos Roca, r.perez, Chris Mann
WEBSITE
WEBSITEhttps://github.com/OCA/spreadsheet
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - spreadsheet
    - bus
    - base
    - web
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
spreadsheet_select_row_number_form_view spreadsheet.select.row.number.form spreadsheet.select.row.number form New
spreadsheet_spreadsheet_form_view spreadsheet.spreadsheet.tree (in spreadsheet_oca) spreadsheet.spreadsheet form New
spreadsheet_spreadsheet_import_form_view spreadsheet.spreadsheet.import.form (in spreadsheet_oca) spreadsheet.spreadsheet.import form New
spreadsheet_spreadsheet_search_view spreadsheet.spreadsheet.search (in spreadsheet_oca) spreadsheet.spreadsheet search New
spreadsheet_spreadsheet_tree_view spreadsheet.spreadsheet.tree (in spreadsheet_oca) spreadsheet.spreadsheet tree New
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (7)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • name Char
    required=True
  • spreadsheet_raw Serialized
  • spreadsheet_revision_ids One2many → spreadsheet.oca.revision
    domain=<expr> inverse_name='res_id' args: 'spreadsheet.oca.revision'
Public methods (4)
  • get_spreadsheet_data(self)
  • open_spreadsheet(self)
  • send_spreadsheet_message(self, message)
  • write(self, vals)

New fields (7)
  • client_id Char
  • commands Char
  • model Char
    required=True
  • next_revision_id Char
  • res_id Integer
    index=True required=True
  • server_revision_id Char
  • type Char
Public methods (0)

No public methods.

New fields (5)
  • can_have_dynamic_cols Boolean
  • dynamic_cols Boolean
  • dynamic_rows Boolean
  • number_of_cols Integer
  • number_of_rows Integer
Public methods (0)

No public methods.

New fields (9)
  • company_id Many2one → res.company
    comodel_name='res.company' help='If set, the spreadsheet will be available only if this company is in the current companies.'
  • contributor_group_ids Many2many → res.groups
    column1='spreadsheet_id' column2='group_id' relation='spreadsheet_group_contributor' string='Contributors Groups' args: 'res.groups'
  • contributor_ids Many2many → res.users
    column1='spreadsheet_id' column2='user_id' relation='spreadsheet_contributor' string='Contributors' args: 'res.users'
  • data Binary
  • filename Char
    compute='_compute_filename'
  • owner_id Many2one → res.users
    default=<expr> required=True args: 'res.users'
  • reader_group_ids Many2many → res.groups
    column1='spreadsheet_id' column2='group_id' relation='spreadsheet_group_reader' string='Readers Groups' args: 'res.groups'
  • reader_ids Many2many → res.users
    column1='spreadsheet_id' column2='user_id' relation='spreadsheet_reader' string='Readers' args: 'res.users'
  • spreadsheet_raw Serialized
    compute='_compute_spreadsheet_raw' inverse='_inverse_spreadsheet_raw'
Public methods (1)
  • create_document_from_attachment(self, attachment_ids)

New fields (13)
  • can_be_dynamic Boolean
  • can_have_dynamic_cols Boolean
  • datasource_name Char
  • dynamic Boolean
    help='This field allows you to generate tables that its rows are updated with the filters set in the spreadsheets.' args: 'Dynamic Rows'
  • dynamic_cols Boolean
    help='This field allows you to generate tables that its cols are updated with the filters set in the spreadsheets.' args: 'Dynamic Columns'
  • import_data Serialized
  • is_tree Boolean
  • mode Char
    related='mode_id.code'
  • mode_id Many2one → spreadsheet.spreadsheet.import.mode
    default=<expr> required=True args: 'spreadsheet.spreadsheet.import.mode'
  • name Char
  • number_of_cols Integer
    args: 'Number of Columns'
  • number_of_rows Integer
  • spreadsheet_id Many2one → spreadsheet.spreadsheet
    args: 'spreadsheet.spreadsheet'
Public methods (1)
  • insert_pivot(self)

New fields (4)
  • code Char
    required=True
  • group_ids Many2many → res.groups
    args: 'res.groups'
  • name Char
    required=True translate=True
  • sequence Integer
    default=20
Public methods (0)

No public methods.