Odoo 中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组

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

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

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

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

    用wizard导入excel数据

    Odoo 开发与实施交流
    4
    5
    5962
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • D
      d_yang 最后由 编辑

      作为一个quick note吧。
      OE里的csv导入数据功能形同摆设,通俗地说就是弱爆了。
      今天尝试一下用excel文件来导入数据。

      在python里读取excel格式的lib很多,这里我选用的是xlrd。
      上代码先:

      <br /># -*- coding: utf-8 -*-<br /><br />from osv import osv, fields<br />import time, xlrd, base64<br /><br /><br />class bank_bill_import(osv.osv_memory):<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; _name = &quot;fg_account.bank_bill.import.wizard&quot;<br />&nbsp; &nbsp; _description = &quot;导入账单&quot;<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; _columns = {<br />&nbsp; &nbsp; &nbsp; &nbsp; &#039;excel&#039;: fields.binary(&#039;excel文件&#039;, filters=&#039;*.xls&#039;),<br />&nbsp; &nbsp; }<br />&nbsp; &nbsp; <br />&nbsp; &nbsp; def import_bill(self, cr, uid, ids, context=None):<br />&nbsp; &nbsp; &nbsp; &nbsp; for wiz in self.browse(cr,uid,ids):<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if not wiz.excel: continue<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; excel = xlrd.open_workbook(file_contents=base64.decodestring(wiz.excel))<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sh = excel.sheet_by_index(0)<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print sh.name, sh.nrows, sh.ncols<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for rx in range(sh.nrows):<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for ry in range(sh.ncols):<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print sh.cell(rx, ry).value<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #这里做爱做的事情<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; return {&#039;type&#039;: &#039;ir.actions.act_window_close&#039;}<br />
      




      其实重点就在于:

      excel = xlrd.open_workbook(file_contents=base64.decodestring(wiz.excel))
      

      1 条回复 最后回复 回复 引用 0
      • mrshelly
        mrshelly 最后由 编辑

        Good 多谢分享....

        1 条回复 最后回复 回复 引用 0
        • P
          pingwe 最后由 编辑

          这代码写在那里呢?

          1 条回复 最后回复 回复 引用 0
          • Joshua
            Joshua 管理员 最后由 编辑

            回楼上的 就是一个wizard..

            【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

            1 条回复 最后回复 回复 引用 0
            • First post
              Last post