This question has been flagged
1 Reply
15788 Views

Guys,

Suppose I have a binary filed to upload xls file.

data = fields.Binary()

My requirement is I want to get the values of xls in a python function as a Two dimensional list.

[  [row1], [row2], [row3], [row4],.... ]

Is this possible  ... ?

or another way ?

Avatar
Discard
Best Answer

 Use xlrd to read the file as given below. I have done it in odoo9. You may try this.

from xlrd import open_workbook
import base64

def read_excel(self):
    wb = open_workbook(file_contents = base64.decodestring(obj.data))
    sheet = wb.sheets()[0]

    for s in wb.sheets():

         values = []

         for row in range(s.nrows):

             col_value = []

             for col in range(s.ncols):

                 value  = (s.cell(row,col).value)

                 try : value = str(int(value))

                 except : pass

                 col_value.append(value)

             values.append(col_value)

     print values

Avatar
Discard
Author

Excellent !!!

Thank u Sebin, This is what I expected .

You are welcome Shameem.

obj should be your object in which you are using the binary field to save the xls file