问题描述
如何从 odoo 14 中的向导生成 xlsx 报告。 我在向导中做了一个按钮
在wizard.py中
classReceivedReportWizard(models.TransientModel):
_name = 'po.goods.report.wizard'
def print_xls(self):
context = self._context
data = {
'ids': self.ids,'model': self._name,}
return {
'type': 'ir.actions.report','data': {'model': 'po.goods.report.wizard','options': json.dumps(data,default=date_utils.json_default),'output_format': 'xlsx','report_name': 'product receiving statement',},'report_type': 'xlsx'
}
在xml中
<record id="goods_received_details_xlsx" model="ir.actions.report">
<field name="name">product receiving report</field>
<field name="model">po.goods.report.wizard</field>
<field name="report_name">goods_received_report.report_goods_received_xlsx</field>
</record>
在report.py
_name = 'report.goods_received_report.report_goods_received_xlsx'
_inherit = 'report.report_xlsx.abstract'
def generate_xlsx_report(self,workbook,data,vendors):
format0 = workbook.add_format({'font_size': 14,'align': 'vcenter','bold': True})
format1 = workbook.add_format({'font_size': 11,'bold': True})
format2 = workbook.add_format({'font_size': 8,})
sheet = workbook.add_worksheet('Student Data Card')
sheet.write(2,4,'test Details',format0)
解决方法
您是否尝试过在向导视图 xml 中调用 print_xls
?
<button name="print_xlx"/>
我不明白为什么要打印 xlsx 时在 xml 中声明 qweb-pdf。要打印 xlsx,您需要为 xlsx 报告安装一个新模块。