跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. OE导入导出数据

OE导入导出数据

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

    本文是基于openERP 6.1.1版本的,window xp系统.在其他版本或系统可能会有所不同.
    完全是个人经验的总结,其中部分情况具有个人性.并不一定适用所有人.
    使用的转换编码格式的工具是Notepad++,至少它在编码转换方面很好用.
    一, 导出
    导出很简单,这里主要说说乱码的问题.
    我导出为Excel格式时,没有问题.格式正确,没有乱码.
    但当导出为csv格式时,汉字就会出现乱码(有些时候格式也会错误: 有部分id列中的值,出现在了和其对应的项的单元格里).这时我们不用默认的Excel打开,使用Nodepad++.然后转换为UTF-8格式,保存.再用Excel打开就好了.
    其实单纯的导出用的很少,导出最主要的作用是为导入做准备.下面就说说这个.
    二,导入
    最基本的:先导入基本表,最后导中间表.
    1.还有就是我的经验:
    ① 一定不能有空格.不是指用Excel打开的时候,而是说用Nodepad++的时候.无论什么位置,逗号内或逗号外,无论是表头或者数据.
    ② 其他符号.数据中可以有*,句号(.),””等.导入之后会原样出现在表格中. Open ERP中文社区(http://shine-it.net)有个帖子说是导入时一定不能有引号,我认为是版本的问题或者操作不当.原因如下:
    如果将表头加上引号,其对应的本列数据也都加上引号,那么也会正常导入,而引号不会显示. 其实,OE导出的csv格式数据,默认就是用带引号这种格式的.
    还有一点我想到,但没有去试的,就是将空格加上引号,会不会就可以导入空格了呢?
    ③ 注意表中字段的类型,比如字段是float类型,但导入的数据是汉字,那么导入就会出错.
    2.具体步骤
    ①对于基本表.
    先导出为csv格式(表中事先有没有数据不重要,没有数据也可以导出),将id列删除.将要导入的数据按对应字段复制到表中,保存关闭.
    用Notepad++打开文件,如果文件中有空格,通通删除.看看是否有多余的逗号,引号.删除.然后转换为UTF-8格式,保存关闭.
    接着…..导入就可以了.
    ②非基本表
    先导出为csv格式(表中事先有没有数据不重要,没有数据也可以导出),将id列删除.保存为Table1.csv.
    此时在表头中引用到基本表数据的字段名后边就跟上”/id”的字符串,意思就是此字段的数据不是基本表中的值,而是其对应的id.这时就要先获得基本表中各个值的id,获得方法就是导出基本表,为了方便,这时直接导出为Excel格式就够了.在导出的表中第一列就是id列.保存为Table2.xls,因为基本表可能不止用到一个,所以可能还会有Table3.xls, Table4.xls等等.
    将要导入的数据复制到Table1.csv中,根据Table3.xls, Table4.xls的对应关系将引用到基本表的列的数据替换成对应的id.注意替换时id包括” export.” , 不要想当然的将这个去掉.这个工作比较费事. 不过一般引用到基本表的字段都具有很强的重复性, 用Excel的查找替换功能就差不多了, 复杂度取决于基本表中的数据量.
    其实如果数据量实在很多的话,按照对应关系替换某列的值对于Excel来说应该是不难,会不会有什么公式,或者Excel本身就有这个功能?实在不行,还有VBA(当然许多语言都可以操作Excel,就看你用哪个熟练了),如果数据量太大,写个简单的程序应该还是很值得的.
    最后,一切都OK了,保存关闭.用Nodepad++打开, ,如果文件中有空格,通通删除.看看是否有多余的逗号,引号.删除.然后转换为UTF-8格式,保存关闭. 接着导入就可以了.
    浏览选择完文件后,有时一些列不会自动对应,如图,那么自己选择一下就好了.点击导入,如果出错,会有提示,我遇到的所有错误都是用上边的3条经验解决的.
    [img [检测到链接无效,已移除] /img]
    最后在提醒一点,这么多的文件,导出的,导入的,原始的表,Excel的,csv的,不要搞混了.最好放在不同文件夹中.

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

      图片看不到就看不到吧,不重要.写这个就是自己工作的总结,同时也能给和我一样初次接触openERP的童鞋提供个参考.

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

        用OOO会少很多麻烦!
        OOO是OPENOFFICE

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

          导入文件->自动检测
          输入错误
          打开.csv文件时发生错误。
          这个你们有碰到过吗?

          1 条回复 最后回复
          0

          • 登录

          • 没有帐号? 注册

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