跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. 上传Excel附件,且自动解析文件

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

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
8 帖子 5 发布者 8.4k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • B 离线
    B 离线
    bingsun8208
    写于 最后由 编辑
    #1

    准备工作,您需要下载Python的解析Excel的包。xlrd
    有关此包的介绍我就不详说了,就是一个读Excel2003以下格式的第三方类库,据官网介绍也支持Excel2007的xml文件格式,不过具体我没试验过,只试了2003的xls格式。至于写就是另外一个包了,叫xlwt,反正一家公司的。
    下载地址:http://www.python-excel.org/


    言归正传,我是有个外部的Excel文件需要导入到OE里,但是OE自带Import模块太复杂,验证过于繁琐,因此就想改成我自己上传附件,后台自定义解析。

    首先要解决上传附件的问题,OE有个ir.attachments模块,这个就是附件模块,不过默认是序列化为二进制后存入数据库,这样挺麻烦的,这时候就需要改为上传到指定的文件夹,然后用文件流的方式读取。

    至于怎么改请参考这篇文章,http://cn.openerp.cn/where_to_store_attachement_in_openerp_7/,我就是在这里找到解决的思路。

    上传后,文件会保存在"openerp根目录/filestore/当前数据库名称/"目录下,至于怎么获取这个目录请参考我之前发的一篇文章,http://shine-it.net/index.php/topic,14759.0.html。


    至此,我们解决了上传附件的问题,接下来就是解析Excel了,其实网上这方面的博客都很多,仔细看看应该基本都会了。

    首先需要引入相关库

    <br />import xdrlib ,sys<br />import xlrd<br />
    



    Excel操作

    <br />try:<br />&nbsp; &nbsp; data = xlrd.open_workbook(file_path) # 打开Excel文件<br />&nbsp; &nbsp; return data<br />except Exception,e:<br />&nbsp; &nbsp; raise osv.except_osv(u&#039;error&#039;,u&#039;.....&#039;)<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 />&nbsp; &nbsp; pass<br />
    



    后续具体怎么操作,还是请各位结合自己的业务逻辑吧。 🙂

    1 条回复 最后回复
    0
    • C 离线
      C 离线
      ccdos
      写于 最后由 编辑
      #2

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

      1 条回复 最后回复
      0
      • B 离线
        B 离线
        bingsun8208
        写于 最后由 编辑
        #3

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

        1 条回复 最后回复
        0
        • mrshellyM 离线
          mrshellyM 离线
          mrshelly
          写于 最后由 编辑
          #4

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

          1 条回复 最后回复
          0
          • Q 离线
            Q 离线
            qq342406169
            写于 最后由 编辑
            #5

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

            1 条回复 最后回复
            0
            • W 离线
              W 离线
              wang
              写于 最后由 编辑
              #6

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

              1 条回复 最后回复
              0
              • B 离线
                B 离线
                bingsun8208
                写于 最后由 编辑
                #7

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

                1 条回复 最后回复
                0

                • 登录

                • 没有帐号? 注册

                • 登录或注册以进行搜索。
                • 第一个帖子
                  最后一个帖子
                0
                • 版块
                • 标签
                • 热门
                • 用户
                • 群组