Skip to content

[18.0] [IMP] spreadsheet_oca: headless XLSX export with server-side pivot rendering#101

Open
dnplkndll wants to merge 2 commits intoOCA:18.0from
ledoent:18.0-feat-xlsx
Open

[18.0] [IMP] spreadsheet_oca: headless XLSX export with server-side pivot rendering#101
dnplkndll wants to merge 2 commits intoOCA:18.0from
ledoent:18.0-feat-xlsx

Conversation

@dnplkndll
Copy link

Summary

Depends on

  • Shared infrastructure (commit A): server-side pivot engine, cell-ref helpers

Test plan

  • test_xlsx_export.py passes (static sheets, formulas, pivots, cross-tabs, action/attachment creation)
  • Export button appears on spreadsheet form view
  • Generated .xlsx opens correctly in Excel/LibreOffice

🤖 Generated with Claude Code

@dnplkndll dnplkndll changed the title [IMP] spreadsheet_oca: headless XLSX export with server-side pivot rendering [18.0] [IMP] spreadsheet_oca: headless XLSX export with server-side pivot rendering Mar 13, 2026
dnplkndll and others added 2 commits March 12, 2026 19:56
… helpers

Add shared infrastructure for upcoming server-side features:

- cell_ref.py: parse cell references (A1 notation), read/write cell
  values in spreadsheet_raw JSON.  Used by alerts, scenarios, input
  parameters, and XLSX export.

- pivot_data.py: replicates the JS PivotModel's read_group strategy
  in Python — computes pivot table data server-side without executing
  JavaScript.  Exposes get_pivot_data() as a JSON-RPC entry point,
  collect_pivot_summaries() for batch iteration, and
  render_pivot_table_html() for email/Chatter rendering.

- _compute_related_count(): DRY helper on spreadsheet.spreadsheet for
  child-model count fields (used by all upcoming features).

- Demo partners with geographic diversity for pivot tests.
- Demo pivot dashboard spreadsheet with =PIVOT() formulas.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…t rendering

Adds SpreadsheetXlsxExporter class that generates .xlsx files from
spreadsheet records without requiring a browser. Static cells are
written verbatim; ODOO pivots are re-computed from fresh database
state via the pivot_data engine.

Includes form button, JSON-RPC endpoint, attachment creation, and
comprehensive tests covering static sheets, pivots, and cross-tabs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant