Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
7 Odpovědi
20682 Zobrazení

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
Zrušit
Nejlepší odpověď

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
Zrušit
Autor

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.

Autor

Thank you very much, Antala,

your reply resolves my problems absolutely.

Thanks for your time, your efforts and your patience.

Autor Nejlepší odpověď

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
Zrušit
Related Posts Odpovědi Zobrazení Aktivita
1
čvc 16
14885
3
srp 24
1835
2
kvě 24
1884
1
bře 19
4340
2
bře 17
4641