最近用odoo(V10),需要批量导入数据,源数据文件格式当然是Excel,但导入的时候总报编码错误('ascii’ codec can’t encode),所以一直是先把Excel存成csv,然后再转换成UTF-8,再导入,太麻烦不说,而且容易出错,对于不懂字符编码为何物的业务人员来说这就是一个大BUG。所以必须要支持Excel文件直接导入。
通过跟踪代码,在source/addons/base_import/models/base_import.py文件中第204行:
@api.multi
def _read_xls(self, options):
""" Read file content, using xlrd lib """
book = xlrd.open_workbook(file_contents=self.file) #这一行出错
return self._read_xls_book(book)
,既然是xlrd报的错,就尝试升级xlrd试试,从
https://pypi.python.org/pypi/xlrd
下载最新版本 (xlrd ver1.0.0),并安装,再导入测试,问题解决