Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

上传Excel附件,且自动解析文件



  • 准备工作,您需要下载Python的解析Excel的包。xlrd<br />有关此包的介绍我就不详说了,就是一个读Excel2003以下格式的第三方类库,据官网介绍也支持Excel2007的xml文件格式,不过具体我没试验过,只试了2003的xls格式。至于写就是另外一个包了,叫xlwt,反正一家公司的。<br />下载地址:http://www.python-excel.org/<br /><br /><br />言归正传,我是有个外部的Excel文件需要导入到OE里,但是OE自带Import模块太复杂,验证过于繁琐,因此就想改成我自己上传附件,后台自定义解析。<br /><br />首先要解决上传附件的问题,OE有个ir.attachments模块,这个就是附件模块,不过默认是序列化为二进制后存入数据库,这样挺麻烦的,这时候就需要改为上传到指定的文件夹,然后用文件流的方式读取。<br /><br />至于怎么改请参考这篇文章,http://cn.openerp.cn/where_to_store_attachement_in_openerp_7/,我就是在这里找到解决的思路。<br /><br />上传后,文件会保存在"openerp根目录/filestore/当前数据库名称/"目录下,至于怎么获取这个目录请参考我之前发的一篇文章,http://shine-it.net/index.php/topic,14759.0.html。<br /><br /><br />至此,我们解决了上传附件的问题,接下来就是解析Excel了,其实网上这方面的博客都很多,仔细看看应该基本都会了。<br /><br />首先需要引入相关库<br />[code]<br />import xdrlib ,sys<br />import xlrd<br />[/code]<br /><br />Excel操作<br />[code]<br />try:<br />    data = xlrd.open_workbook(file_path) # 打开Excel文件<br />    return data<br />except Exception,e:<br />    raise osv.except_osv(u'error',u'.....')<br /><br />sheet = data.sheets()[0] # 获取第一个sheet<br />nrows = sheet.nrows # 总行数<br />ncols = sheet.ncols # 总列数<br /><br /># 循环行<br />for i to range(0, nrows):<br />    pass<br />[/code]<br /><br />后续具体怎么操作,还是请各位结合自己的业务逻辑吧。 :)



  • 准备工作,您需要下载Python的解析Excel的包。xlrd<br />有关此包的介绍我就不详说了,就是一个读Excel2003以下格式的第三方类库,据官网介绍也支持Excel2007的xml文件格式,不过具体我没试验过,只试了2003的xls格式。至于写就是另外一个包了,叫xlwt,反正一家公司的。<br />下载地址:http://www.python-excel.org/<br /><br /><br />言归正传,我是有个外部的Excel文件需要导入到OE里,但是OE自带Import模块太复杂,验证过于繁琐,因此就想改成我自己上传附件,后台自定义解析。<br /><br />首先要解决上传附件的问题,OE有个ir.attachments模块,这个就是附件模块,不过默认是序列化为二进制后存入数据库,这样挺麻烦的,这时候就需要改为上传到指定的文件夹,然后用文件流的方式读取。<br /><br />至于怎么改请参考这篇文章,http://cn.openerp.cn/where_to_store_attachement_in_openerp_7/,我就是在这里找到解决的思路。<br /><br />上传后,文件会保存在"openerp根目录/filestore/当前数据库名称/"目录下,至于怎么获取这个目录请参考我之前发的一篇文章,http://shine-it.net/index.php/topic,14759.0.html。<br /><br /><br />至此,我们解决了上传附件的问题,接下来就是解析Excel了,其实网上这方面的博客都很多,仔细看看应该基本都会了。<br /><br />首先需要引入相关库<br />[code]<br />import xdrlib ,sys<br />import xlrd<br />[/code]<br /><br />Excel操作<br />[code]<br />try:<br />    data = xlrd.open_workbook(file_path) # 打开Excel文件<br />    return data<br />except Exception,e:<br />    raise osv.except_osv(u'error',u'.....')<br /><br />sheet = data.sheets()[0] # 获取第一个sheet<br />nrows = sheet.nrows # 总行数<br />ncols = sheet.ncols # 总列数<br /><br /># 循环行<br />for i to range(0, nrows):<br />    pass<br />[/code]<br /><br />后续具体怎么操作,还是请各位结合自己的业务逻辑吧。 :)



  • 我是 抄袭 上传翻译文件的代码 , 然后解析的



  • 这个,只要搞定怎么上传了,后面就简单了,想怎么玩就怎么玩。



  • 感谢分享.  建议给贴子加上些 Tag 更方便BBS的检索.



  • OpenERP的知识管理系统本来就支持解析文本内容的呀,只是不支持2003格式的,你可以尝试上传2007的格式试试,另外Openoffice格式也支持的



  • 这个非常好 谢谢分享  这个我在参考web_printscreen的例子也有很好的介绍的



  • 各位,又遇到难题了,现在文件是以binary方式存到数据库里的,如何读取出来呢?


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待