Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
1 Odpowiedz
5562 Widoki

I generate XLSX file using xlsxwriter module and downloaded after generated, but what I need is to save the xlsx file in the attachment? #odoo 15


Awatar
Odrzuć
Autor

Thank you Jainesh,

I couldn't reply to your answer because of this stupid Karma. So your answer was helpful and inspired me to find the solution, but it will not work on Python 3, the following code is worked on Python 3:


from io import BytesIO

import base64

import xlsxwriter


        output = BytesIO()

        file_name = "%s.xlsx” % your_file_name

        workbook = xlsxwriter.Workbook(output)


        //your code here


        self.env['ir.attachment'].create({

            'name': file_name,

            'type': 'binary',

            'datas': datas,

            'store_fname': file_name,

            'res_model': model_name,

            'res_id': res_id,

            'mimetype': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'

        })





Najlepsza odpowiedź

Hello Saleh Algarni

Hope this code block will work for you.

Please find code in Comment. 

Thanks & Regards,
Email: odoo@aktivsoftware.com
Skype: kalpeshmaheshwari

Awatar
Odrzuć

from cStringIO import StringIO
import base64

workbook = xlsxwriter.Workbook('demo.xlsx')
worksheet = workbook.add_worksheet()
worksheet.set_column('A:A', 20)

# Code for XLSX

fp = StringIO()
workbook.save(fp)
fp.seek(0)
datas = base64.encodestring(fp.read())
file_name = "demo.xlsx"
attachment_data = {
'name':file_name,
'datas_fname':file_name,
'datas':datas,
'res_model':"modelname",
}
self.env['ir.attachment'].create(attachment_data)

Powiązane posty Odpowiedzi Widoki Czynność
0
sty 22
2009
1
lut 25
1079
1
maj 23
4040
1
lip 19
4876
2
cze 23
8706