Skip to main content
Excel Export with Embedded Images — A build-to-order Odoo module that exports list views and report data to native — 1/1Illustrative preview

A build-to-order Odoo module that exports list views and report data to native .xlsx with real image thumbnails

embedded directly in the cells — no Base64 strings, no broken links.

ECOSIRE scopes, builds, installs, and supports it for you.

What is Excel Export with Embedded Images?

A build-to-order Odoo module that exports list views and report data to native .xlsx with real image thumbnails embedded directly in the cells — no Base64 strings, no broken links. ECOSIRE scopes, builds, installs, and supports it for you. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Real image thumbnails inserted into cells via xlsxwriter insert_image() with per-cell anchoring, x/y scale, and object positioning — never Base64 text dumps
Server-side decode of Odoo binary fields (image_1920, image_128, custom binary) and Pillow resize to a configurable thumbnail dimension for small, fast workbooks
Per-model export profile config object controlling column selection, order, headers, number/date formats, column widths and row heights to fit images
List-view integration via a Server Action / ir.actions.act_window menu so users export the exact filtered, sorted, multi-selected record set they see
Works across product.template, product.product, res.partner and any custom models.Model — image field and columns are mapped per profile, not hardcoded
Honors the acting user's record rules, domain filters and multi-company rules — exports only rows the user is entitled to read
Bulk export of large filtered lists with batched ORM reads and streamed workbook generation to keep memory bounded on big catalogs
Branded header and footer templates — company logo, report title, generation timestamp, page setup — driven from a QWeb-style template or config
Optional scheduled export via ir.cron that renders the workbook and emails it to a recipient list on a recurring cadence
Graceful handling of missing or corrupt images — placeholder cell or blank instead of a failed export, logged for review
Column formatting engine: currency with company currency symbol, thousands separators, dates in the user's locale, boolean-to-label mapping
Optional hyperlink-back-to-record column so an Excel row links straight to the Odoo form (base URL aware)
Access-controlled via ir.model.access.csv plus optional record rules so only designated roles can run or configure exports
Clean __manifest__.py with pinned Pillow/xlsxwriter dependencies, no monkey-patching of core, upgrade-safe across 17.0/18.0/19.0

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Catalog and inventory teams live in Excel when they share data outside Odoo — with suppliers, buyers, marketplaces, and auditors. But the moment images matter, Odoo's native export breaks down. The standard list export dumps binary image_1920 / image_128 fields as enormous Base64 text strings (or omits them entirely), so a product sheet meant to show 300 thumbnails arrives as unreadable character soup. QWeb PDF reports embed images beautifully but aren't editable, and the built-in XLSX exporter (report_xlsx style output) writes plain text and numbers only. There is no supported path in Odoo core to get an actual picture sitting inside cell B2.

We build a dedicated export engine that closes that gap. It reads Odoo binary image fields through the ORM, decodes them server-side, resizes them to a configurable thumbnail dimension with Pillow, and streams them into a real .xlsx workbook using xlsxwriter's insert_image() so each thumbnail is anchored, scaled, and clipped to its row. The exporter is driven by a per-model export profile (stored in a config model with ir.model.access.csv rules) that lets you choose which fields become columns, their order, headers, number/date formatting, column widths, and row height to fit the image. It hangs off a Server Action / list-view "Export to Excel (with images)" menu entry, so managers select filtered records in any tree view — product.template, res.partner, or a custom model — and pull exactly the visible, filtered set. Under the hood it respects the same domain, record rules, and multi-company access the user already has, so nobody exports rows they can't see.

Because every business asks for something specific — a supplier price list with logo watermarks, a stock report grouped by category with cost columns hidden by role, a marketplace feed with SKU + barcode + main image — we deliver this as a scoped module, not a rigid off-the-shelf download. During the scoping call we confirm which models and fields you need, whether the export runs interactively or as a scheduled ir.cron job emailing a workbook, branded header/footer templates, and whether you're on Odoo 17.0, 18.0, or 19.0 (Community or Enterprise). We then build against your exact version and data, test it on a staging copy of your database, and hand over clean, documented source in your own git repository. Typical delivery is one working week from confirmed scope. Nothing is auto-downloaded and nothing is generic — it is engineered, installed, and supported by ECOSIRE for your instance.

What you get

  • Installable, version-matched module source code for your Odoo 17.0, 18.0, or 19.0 instance (Community or Enterprise)
  • Installation and configuration on your environment, including export-profile setup for your target models and fields
  • Technical documentation: model/field mapping, __manifest__.py dependencies, security (ir.model.access.csv + record rules), and extension points
  • End-user guide plus a live training session for the catalog/inventory team on running and formatting exports
  • Post-go-live support window for defect fixes and questions after deployment
  • UAT on a staging copy of your database with a documented rollback plan before touching production
  • Full git repository handover so you own and can maintain the source
  • Optional scheduled-export (ir.cron) and branded-template setup where included in scope

Who this is for

Catalog Manager

Maintains thousands of product.template records and constantly shares visual product sheets with buyers, marketplaces and print teams. Needs SKU, price and a real thumbnail side by side in an editable Excel file, not a Base64 string or a locked PDF.

Inventory / Warehouse Manager

Runs stock and valuation reports filtered by location or category and needs to circulate them with product images so pickers and auditors can visually confirm items. Wants the exact filtered list exported with images and cost columns gated by role.

Procurement / Supplier Relations Lead

Sends branded price lists and RFQ packs to vendors. Needs a header/footer-branded workbook with product image, supplier reference and pricing, ideally on a scheduled ir.cron drop to a recipient list.

Odoo Administrator

Owns the instance and must keep it upgrade-safe. Wants a clean module with pinned dependencies, ir.model.access.csv security, no core monkey-patching, and a git handover they can maintain across 17/18/19 upgrades.

How Excel Export with Embedded Images Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Image handlingReal thumbnails embedded in cells via insert_image()Possible but you build the Pillow/xlsxwriter pipeline yourselfOften exports Base64 text or a URL, not a real pictureDumps Base64 string or omits the image entirely
Version & edition fitBuilt against your exact 17/18/19, Community or EnterpriseWhatever your team targets and maintainsOne build; may lag your version or editionShips with core; no image-in-cell capability
Scope matchYour models, columns, formatting and branding by designFully bespoke but all effort is on youFixed feature set; you adapt to itGeneric export with no configuration for images
Security modelir.model.access.csv + record rules, runs as acting userCorrect only if your devs implement itVaries; access controls often minimalStandard export permissions, no export-profile control
AutomationOptional ir.cron scheduled email export in scopeBuild the cron yourselfRarely includes scheduled deliveryManual export only
Support & upgradesPost-go-live window + optional retainer for version bumpsYour team owns all maintenanceVendor support quality varies; upgrade timing not guaranteedCommunity/Enterprise support, no custom-feature help
OwnershipFull git repo handover — you own the sourceYou own itLicensed module; source may be obfuscatedN/A — it's core
Deliveryone working week build-to-order, tested on staging + rollbackDepends on internal backlog and skillsInstant download but generic and unverified on your dataAlready installed, but lacks the capability

Frequently Asked Questions about Excel Export with Embedded Images

How is this different from Odoo's built-in list export or XLSX report?

Odoo's native list export writes binary image fields as raw Base64 text (or drops them), and the standard XLSX exporter only outputs text and numbers. This module decodes the image server-side, resizes it, and inserts a real picture into the cell with xlsxwriter's insert_image() — an editable spreadsheet where the thumbnail actually appears, anchored and scaled to the row.

What is the delivery lead time?

This is a build-to-order module, not an instant apps.odoo.com download. Typical delivery is one working week from confirmed scope. The timeline starts once we agree the target models, columns, image fields, branding and your Odoo version on the scoping call. Nothing auto-downloads — we build, test on staging, and install it for you.

Which Odoo versions and editions are supported?

Odoo 17.0, 18.0 and 19.0, on both Community and Enterprise. We build against your exact version so the ORM, view and reporting APIs match. If you later upgrade, we handle the version bump as part of a support engagement since it's your own maintained source.

How does support and updates work after go-live?

Every build includes a post-go-live support window for defect fixes and questions. Because you receive the full git repository, you own the code and can maintain it in-house or keep it on a support/retainer arrangement with ECOSIRE — including version upgrades and new model/column additions as your needs grow.

Can it export any model, or just products?

Any model. The exporter is driven by a per-model profile, so it works with product.template, res.partner or any custom models.Model that has a binary image field. During scoping we map the models, columns and image fields you need — nothing is hardcoded to products.

Will it respect our access rights and multi-company setup?

Yes. Exports run as the acting user, so record rules, domain filters and multi-company rules are enforced — users only export rows they can already read. Who may run or configure exports is controlled via ir.model.access.csv and optional record rules defined during the build.

Can exports be automated instead of run by hand?

Yes, where it's in scope. We can wire an ir.cron scheduled action that renders the workbook and emails it to a recipient list on a recurring cadence — useful for weekly supplier price lists or stock reports — in addition to the on-demand list-view export.

Request a quote

Excel Export with Embedded Images

A build-to-order Odoo module that exports list views and report data to native .xlsx with real image thumbnails embedded directly in the cells — no Base64 strings, no broken links. ECOSIRE scopes, builds, installs, and supports it for you.

  • Real image thumbnails inserted into cells via xlsxwriter insert_image() with per-cell anchoring, x/y scale, and object positioning — never Base64 text dumps
  • Server-side decode of Odoo binary fields (image_1920, image_128, custom binary) and Pillow resize to a configurable thumbnail dimension for small, fast workbooks
  • Per-model export profile config object controlling column selection, order, headers, number/date formats, column widths and row heights to fit images
  • List-view integration via a Server Action / ir.actions.act_window menu so users export the exact filtered, sorted, multi-selected record set they see

Request a Quotation

Tell us about your Excel Export with Embedded Images requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.