Skip to Content
Menu
You need to be registered to interact with the community.
This question has been flagged
7 Odgovori
20649 Prikazi

I want to user upload excel file by "fields.Binary()";

when the user click a certain button, this excel file will be downloaded on server; and then use "xlrd.open_workbook(filename[0])" to get the excel data and do the next doings;

Avatar
Opusti
Best Answer

Hello,

Odoo already have method for download file from binary data.

    @http.route('/web/binary/saveas', type='http', auth="public")

    @serialize_exception

    def saveas(self, model, field, id=None, filename_field=None, **kw):

         -------

         -------

This method available on '/web/controllers/main.py'

You can use this method by pass parameter in url.

Example:

URL : localhost:8069/web/binary/saveas?model=ir.attachment&field=datas&filename_field=datas_fname&id=103

Using this url odoo will give you data of field datas from ir.attachment model of record id is 103.

------------------------- Code is For reading Excel file that store in Binary format--------------------------

import base64

from openerp import api, fields, models, _

from openpyxl import load_workbook

class ExcelRead(models.TransientModel):

     _name = "excel.read"

     data_file=fields.Binary('File')

     @api.one

     def import_file(self):

        data_file_p = open('/tmp/test.xlsx','w')

         data_file_p.write((base64.b64decode(self.data_file)))

         data_file_p.close()

         wb = load_workbook('test.xlsx')

         ws = wb['big_data']

         for row in ws.rows:

             for cell in row:

                 print(cell.value)


Hope this helps.



Avatar
Opusti
Avtor

Thanks for your reply;

In the fact I want to get the data from the uploaded excel file of "fields.Binary()";

the code:

.....

filedata=fields.Binary();

...

Now I have uploaded an excel file to "filedata";

My question: how shall I get the the first column data of the Excel file from "filedata"?

is that file type of csv ?

Here i have update my answer and add code for read excel file that store in Binary format.

Avtor

Thank you very much, Antala,

your reply resolves my problems absolutely.

Thanks for your time, your efforts and your patience.

Avtor Best Answer

Now I have import excel data from user's terminal and shall I write the modified data back to user's terminal as excel file?

Avatar
Opusti
Related Posts Odgovori Prikazi Aktivnost
1
jul. 16
14881
3
avg. 24
1813
2
maj 24
1869
1
mar. 19
4311
2
mar. 17
4635