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

如何导出由sum属性生成的最后一行?Excel导出代码问题求助

解决Odoo视图导出Excel时无法导出sum总计行的问题

嘿,这个问题我熟!你现在的代码没导出sum生成的最后一行,核心原因很简单:你写的选择器只抓了带data-id属性的数据行,而Odoo里的sum总计行是没有data-id的——毕竟它不是一条真实的数据库记录,只是前端计算出来的汇总行,自然被你的选择器漏掉了。

解决方案:调整选择器,把总计行纳入范围

Odoo里的sum总计行通常带有o_list_sum的类名(不同版本可能略有差异,比如部分版本是o_total_row,你可以打开浏览器开发者工具确认下),我们只需要修改选择器,把这类行也加进去就行。

修改后的代码片段如下:

if (children) {
    // 同时选中带data-id的选中行,以及sum总计行
    view.$el.find('.o_list_view > tbody > tr[data-id]:has(.o_list_record_selector input:checkbox:checked), .o_list_view > tbody > tr.o_list_sum')
        .each(function () {
            var $row = $(this);
            var export_row = [];
            $.each(export_columns_keys, function () {
                var $cell;
                // 如果是数据行,按data-field找单元格;如果是总计行,按列索引匹配
                if ($row.attr('data-id')) {
                    $cell = $row.find('td[data-field="' + this + '"]');
                } else {
                    // 找到当前列在表头的索引,然后取总计行对应索引的td
                    var colIndex = view.$el.find('.o_list_view > thead th[data-field="' + this + '"]').index();
                    $cell = $row.find('td').eq(colIndex);
                }
                // 处理单元格内容(保留你原来的逻辑,比如取文本、处理复选框等)
                var cellContent = $cell.text().trim();
                // 处理复选框内容(延续你原有代码的逻辑)
                var $cellcheckbox = $cell.find('.o_checkbox input:checked');
                if ($cellcheckbox.length) {
                    cellContent = $cellcheckbox.is(':checked') ? '是' : '否'; // 可根据需求调整文本
                }
                export_row.push(cellContent);
            });
            // 将处理好的行加入导出数据(衔接你原有的导出逻辑)
            export_data.push(export_row);
        });
}

关键修改点说明

  1. 选择器扩展:在原选择器后追加, .o_list_view > tbody > tr.o_list_sum,把总计行纳入选择范围。
  2. 单元格匹配逻辑调整:总计行的td可能没有data-field属性,所以通过表头的data-field找到列索引,再用索引匹配总计行的对应单元格,确保内容对应正确。
  3. 兼容原有逻辑:保留了对数据行的原有处理方式,仅针对总计行做特殊适配。

如果你的Odoo版本里总计行的类名不是o_list_sum,换成你在开发者工具里看到的类名即可~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:39:54