콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
3 답글
7436 화면

 I want to write a module which gets an excel file as input and do some process based on excel data. How can I achieve this? Thanks in advance.

아바타
취소
작성자

I also don't want to save it in database.

베스트 답변

This is mostly related to python and not Odoo. If you just google, you will get lots of options and code to read the data from excel.

https://www.geeksforgeeks.org/reading-excel-file-using-python/
https://datatofish.com/read_excel/

For the input, create a wizard and add a binary field in which you can load the excel file, and then using any python library, you can read the data from that excel.



아바타
취소
작성자

Can you be more specific about odoo part?

You need to create a wizard and a binary field to take the file as an input and then using python lib, read the data from the file.

작성자

and How can I process the file that I uploaded?

베스트 답변

Instead of coding I have started using android productivity office apps. Microsoft 365 is the best solution.

아바타
취소
베스트 답변

Hi,

To load an excel file and read its data and to create record inside the odoo database, you can refer this module, which creates chart of account from excel. See this: Import Chart of Accounts from CSV or Excel File

Relevant part of the code, that reads data from excel.

try:
fp = tempfile.NamedTemporaryFile(delete=False, suffix=".xlsx")
fp.write(binascii.a2b_base64(self.File_slect))
fp.seek(0)
values = {}
workbook = xlrd.open_workbook(fp.name)
sheet = workbook.sheet_by_index(0)
except:
raise Warning(_("Invalid file!"))

for row_no in range(sheet.nrows):
val = {}
if row_no <= 0:
fields = map(lambda row: row.value.encode('utf-8'), sheet.row(row_no))
else:

line = list(map(lambda row: isinstance(row.value, bytes) and row.value.encode('utf-8') or str(row.value),
sheet.row(row_no)))

values.update({'code': line[0],
'name': line[1],
'user': line[2],
'tax': line[3],
'tag': line[4],
'group': line[5],
'currency': line[6],
'reconcile': line[7],
'deprecat': line[8],
})

res = self.create_chart_accounts(values)

Thanks

아바타
취소
관련 게시물 답글 화면 활동
3
11월 20
4945
2
8월 22
6430
4
5월 24
2895
2
10월 23
3515
1
12월 21
4665