資源描述:
《Odoo導(dǎo)入導(dǎo)出數(shù)據(jù)詳解.docx》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、Odoo導(dǎo)入導(dǎo)出數(shù)據(jù)詳解本文是基于openERP6.1.1版本的,windowxp系統(tǒng).在其他版本或系統(tǒng)可能會(huì)有所不同.完全是個(gè)人經(jīng)驗(yàn)的總結(jié),其中部分情況具有個(gè)人性.并不一定適用所有人.使用的轉(zhuǎn)換編碼格式的工具是Notepad++,至少它在編碼轉(zhuǎn)換方面很好用.一,導(dǎo)出導(dǎo)出很簡(jiǎn)單,這里主要說(shuō)說(shuō)亂碼的問(wèn)題.我導(dǎo)出為Excel格式時(shí),沒(méi)有問(wèn)題.格式正確,沒(méi)有亂碼.但當(dāng)導(dǎo)出為csv格式時(shí),漢字就會(huì)出現(xiàn)亂碼(有些時(shí)候格式也會(huì)錯(cuò)誤:有部分id列中的值,出現(xiàn)在了和其對(duì)應(yīng)的項(xiàng)的單元格里).這時(shí)我們不用默認(rèn)的Excel打開(kāi),使用Nod
2、epad++.然后轉(zhuǎn)換為UTF-8格式,保存.再用Excel打開(kāi)就好了.其實(shí)單純的導(dǎo)出為csv格式用的很少,純導(dǎo)出的話,選擇excel格式就好了.導(dǎo)出為csv格式最主要的作用是為導(dǎo)入做準(zhǔn)備.下面就說(shuō)說(shuō)這個(gè).二,導(dǎo)入最基本的:先導(dǎo)入基本表,最后導(dǎo)中間表.1.還有就是我的經(jīng)驗(yàn):①一定不能有空格.不是指用Excel打開(kāi)的時(shí)候,而是說(shuō)用Nodepad++的時(shí)候.無(wú)論什么位置,逗號(hào)內(nèi)或逗號(hào)外,無(wú)論是表頭或者數(shù)據(jù).②其他符號(hào).數(shù)據(jù)中可以有*,句號(hào)(.),””等.導(dǎo)入之后會(huì)原樣出現(xiàn)在表格中.有個(gè)帖子說(shuō)是導(dǎo)入時(shí)一定不能有引號(hào),我認(rèn)為
3、是版本的問(wèn)題或者操作不當(dāng).原因如下:如果將表頭加上引號(hào),其對(duì)應(yīng)的本列數(shù)據(jù)也都加上引號(hào),那么也會(huì)正常導(dǎo)入,而引號(hào)不會(huì)顯示.其實(shí),OE導(dǎo)出的csv格式數(shù)據(jù),默認(rèn)就是用帶引號(hào)這種格式的.還有一點(diǎn)我想到,但沒(méi)有去試的,就是將空格加上引號(hào),會(huì)不會(huì)就可以導(dǎo)入空格了呢?③注意表中字段的類型,比如字段是float類型,但導(dǎo)入的數(shù)據(jù)是漢字,那么導(dǎo)入就會(huì)出錯(cuò).2.具體步驟①對(duì)于基本表.先導(dǎo)出為csv格式(表中事先有沒(méi)有數(shù)據(jù)不重要,沒(méi)有數(shù)據(jù)也可以導(dǎo)出),將id列刪除.將要導(dǎo)入的數(shù)據(jù)按對(duì)應(yīng)字段復(fù)制到表中,保存關(guān)閉.用Notepad++打開(kāi)文
4、件,如果文件中有空格,通通刪除.看看是否有多余的逗號(hào),引號(hào).刪除.然后轉(zhuǎn)換為UTF-8格式,保存關(guān)閉.接著…..導(dǎo)入就可以了.②非基本表先導(dǎo)出為csv格式(表中事先有沒(méi)有數(shù)據(jù)不重要,沒(méi)有數(shù)據(jù)也可以導(dǎo)出),將id列刪除.保存為Table1.csv.此時(shí)在表頭中引用到基本表數(shù)據(jù)的字段名后邊就跟上”/id”的字符串,意思就是此字段的數(shù)據(jù)不是基本表中的值,而是其對(duì)應(yīng)的id.這時(shí)就要先獲得基本表中各個(gè)值的id,獲得方法就是導(dǎo)出基本表,為了方便,這時(shí)直接導(dǎo)出為Excel格式就夠了.在導(dǎo)出的表中第一列就是id列.保存為Table2
5、.xls,因?yàn)榛颈砜赡懿恢褂玫揭粋€(gè),所以可能還會(huì)有Table3.xls,Table4.xls等等.將要導(dǎo)入的數(shù)據(jù)復(fù)制到Table1.csv中,根據(jù)Table3.xls,Table4.xls的對(duì)應(yīng)關(guān)系將引用到基本表的列的數(shù)據(jù)替換成對(duì)應(yīng)的id.注意替換時(shí)id包括”__export__.”,不要想當(dāng)然的將這個(gè)去掉.這個(gè)工作比較費(fèi)事.不過(guò)一般引用到基本表的字段都具有很強(qiáng)的重復(fù)性,用Excel的查找替換功能就差不多了,復(fù)雜度取決于基本表中的數(shù)據(jù)量.其實(shí)如果數(shù)據(jù)量實(shí)在很多的話,按照對(duì)應(yīng)關(guān)系替換某列的值對(duì)于Excel來(lái)說(shuō)應(yīng)該是不
6、難,會(huì)不會(huì)有什么公式,或者Excel本身就有這個(gè)功能?實(shí)在不行,還有VBA(當(dāng)然許多語(yǔ)言都可以操作Excel,就看你用哪個(gè)熟練了),如果數(shù)據(jù)量太大,寫個(gè)簡(jiǎn)單的程序應(yīng)該還是很值得的.最后,一切都OK了,保存關(guān)閉.用Nodepad++打開(kāi),,如果文件中有空格,通通刪除.看看是否有多余的逗號(hào),引號(hào).刪除.然后轉(zhuǎn)換為UTF-8格式,保存關(guān)閉.接著導(dǎo)入就可以了.瀏覽選擇完文件后,有時(shí)一些列不會(huì)自動(dòng)對(duì)應(yīng),如圖,那么自己選擇一下就好了.點(diǎn)擊導(dǎo)入,如果出錯(cuò),會(huì)有提示,我遇到的所有錯(cuò)誤都是用上邊的3條經(jīng)驗(yàn)解決的.最后在提醒一點(diǎn),這么多
7、的文件,導(dǎo)出的,導(dǎo)入的,原始的表,Excel的,csv的,不要搞混了.最好放在不同文件夾中.