Odoo 14中使用excel_import_export OCA模块实现XLSX报表E5单元格零值替换为空白的报错解决方法
解决Odoo 14 excel_import_export模块XLSX单元格零值替换为空白的问题
你遇到的问题是因为在input_instruction的配置里,不能直接用Python的if else语法包裹整个单元格配置字符串——这里的语法是模板表达式,需要在${}内部处理条件判断。
正确的配置写法
把E5的配置修改为:
'E5': 'amount_total${value if value != 0 else ""}#{style=number}'
原理说明
- 这里的
${value}对应amount_total字段的值,我们在模板表达式里直接做条件判断:如果value不等于0,就显示value本身;如果等于0,就显示空字符串("")。 - 保留
#{style=number}可以确保非零值依然按照数字格式渲染,不会丢失原有样式。
完整的input_instruction配置示例
替换后的完整配置如下:
<field name="input_instruction"> { '__EXPORT__': { 1: { '_HEAD_': { 'B2': 'partner_id.display_name${value or ""}#{align=left;style=text}', }, '_EXTEND_results': { 'A5': 'name${value or ""}#{style=text}', 'B5': 'date_order${value or ""}#{style=date}', 'C5': 'amount_untaxed${value or 0}#{style=number}@{sum}', 'D5': 'amount_tax${value or 0}#{style=number}@{sum}', 'E5': 'amount_total${value if value != 0 else ""}#{style=number}', }, }, }, } </field>
这样修改后,当amount_total为0时,E5单元格就会显示空白,非零值则正常显示数字格式的内容。
内容的提问来源于stack exchange,提问作者K.ju
相关产品推荐
相关产品推荐

