You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Odoo15中使用Python在XLSX报表中生成正方形形状?

在Odoo 15中通过Python代码在XLSX报表生成正方形形状

核心依赖说明

Odoo 15的XLSX报表底层依赖xlsxwriter库,可直接调用该库的形状绘制API生成正方形。

实现步骤与代码示例

1. 定义XLSX报表类

创建继承自report_xlsx.abstract_report_xlsx的报表类(依赖社区常用的report_xlsx模块):

from odoo import models

class SquareXlsxReport(models.AbstractModel):
    _name = 'report.your_module.square_xlsx_report'
    _inherit = 'report_xlsx.abstract_report_xlsx'

    def generate_xlsx_report(self, workbook, data, objects):
        # 创建工作表
        worksheet = workbook.add_worksheet('Square Demo')
        
        # 绘制基础正方形:宽高相等的矩形即为正方形
        # 参数:工作表、左上角行索引、左上角列索引、宽度(像素)、高度(像素)、形状类型
        worksheet.insert_shape(0, 0, 100, 100, 'rectangle')
        
        # 绘制带样式的正方形:自定义填充色、边框
        custom_style = {
            'fill': {'color': '#FFEB3B'},
            'line': {'color': '#000000', 'width': 2}
        }
        worksheet.insert_shape(2, 2, 150, 150, 'rectangle', custom_style)

2. 注册报表

在模块的XML配置中关联报表与目标模型:

<report
    id="report_square_xlsx"
    model="your.target.model"
    string="Square XLSX Report"
    report_type="xlsx"
    name="your_module.square_xlsx_report"
    file="your_module/square_report"
    attachment_use="False"/>

关键参数说明

  • insert_shape方法的行、列索引从0开始计数,宽高参数设为相等值即可生成正方形。
  • 形状类型rectangle是xlsxwriter支持的基础形状,通过样式参数可自定义填充色、边框粗细、透明度等视觉属性。

内容的提问来源于stack exchange,提问作者Allbin John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:26:19