日韩欧美一区二区久久-日韩欧美一区二区三区-日韩欧美一区二区三区不卡-日韩欧美一区二区三区不卡视频-日韩欧美一区二区三区不卡在线

產(chǎn)品中心 業(yè)內(nèi)新聞 案例中心 視頻中心

Excel數(shù)據(jù)導(dǎo)入Mobox低代碼平臺(tái) Excel數(shù)據(jù)導(dǎo)入Mobox低代碼平臺(tái)

Excel數(shù)據(jù)導(dǎo)入Mobox低代碼平臺(tái)

Excel數(shù)據(jù)導(dǎo)入Mobox低代碼平臺(tái)

 

我們系統(tǒng)上線的時(shí)候,原先的歷史數(shù)據(jù)是沒(méi)有的,為了快速接軌企業(yè)已有數(shù)據(jù),我們可以通過(guò)excel 對(duì)歷史數(shù)據(jù)進(jìn)行導(dǎo)入操作。導(dǎo)入一般可以通過(guò)腳本做一些定制開(kāi)發(fā)來(lái)實(shí)現(xiàn)

 

列子:

數(shù)據(jù)導(dǎo)入的sheet 要求

這個(gè)系統(tǒng)只能導(dǎo)入,左邊第一個(gè)sheet (命名無(wú)所謂)(注意:若數(shù)據(jù)列表 這個(gè)sheet左邊還有隱藏的sheet,那么系統(tǒng)也不能獲取 數(shù)據(jù)列表sheet頁(yè)的數(shù)據(jù))

對(duì)Excel單元格的要求

單元個(gè)里面的數(shù)據(jù),只能是字符串或數(shù)值。若是計(jì)算公式或函數(shù) ,將無(wú)法獲取

另外,單元個(gè)內(nèi)容 不能出現(xiàn) /\<> & 符號(hào),不能有換行或大量空格

分析excel格式

1、字段分3類(lèi):

  • 關(guān)鍵字段

如,產(chǎn)品名稱(chēng) ,這個(gè)是必須有數(shù)值的

  • 屬性字段

用于登記各種屬性信息

  • 計(jì)算字段

若有數(shù)據(jù),則直接獲取

若沒(méi)有,可以通過(guò)lua腳本計(jì)算生成

這種字段,一般也是必須有數(shù)值的

2、第一行是表頭行,數(shù)據(jù)行從第二行開(kāi)始

 

定義導(dǎo)入功能

通過(guò)Mobox 3000 功能點(diǎn)進(jìn)行定義,設(shè)置界面如下:

導(dǎo)入腳本,參考:

json? = require(“json”)
mobox = require(“OILua_JavelinExt”)
require(“oi_basestrfunc”)
function ImportKA(strLuaDEID)
? ? local nRet, strRetInfo
? ? — 獲取導(dǎo)入的數(shù)據(jù), 返回 [[{“attr”:”xx”,”value”:””},…]]
? ? — V2.0
? ? nRet, strRetInfo = mobox.getCurEditDataPacket(strLuaDEID)
? ? if (nRet ~= 0 or strRetInfo == ”) then
? ? ? ? mobox.error(strLuaDEID, “無(wú)法獲取導(dǎo)入數(shù)據(jù)!”)
? ? ? ? return
? ? end
? ? local input_rows = json.decode(strRetInfo)
? ? local n, nCount, nValue, nMaxRow, nRow
? ? local strAddAttr = ”
? ? — 一些關(guān)鍵屬性
? ? local strKAName = ”
? ? local strKAType = ”
? ? local strArea = ”
? ? — 步驟1 獲取從excel導(dǎo)入的一行數(shù)據(jù),根據(jù)excel的列定義進(jìn)行屬性組合 strAddAttr
? ? nMaxRow = #input_rows
? ? for nRow = 1, nMaxRow do
? ? ? ? input = input_rows[nRow]
? ? ? ? nCount = #input
? ? ? ? — V2.1
? ? ? ? strAddAttr = ”
? ? ? ? strKAName = ”
? ? ? ? strKAType = ”
? ? ? ? strArea = ”
? ? ? ? for n = 1, nCount do
? ? ? ? ? ? strAttr = input[n].attr
? ? ? ? ? ? strValue = input[n].value
? ? ? ? ? ? if (strAttr ~= ” and strValue ~= ”) then
? ? ? ? ? ? ? ? — 根據(jù)導(dǎo)入的excel列頭名稱(chēng)進(jìn)行判斷
? ? ? ? ? ? ? ? — 關(guān)鍵屬性判斷
? ? ? ? ? ? ? ? if (strAttr == “客戶(hù)名稱(chēng)”) then
? ? ? ? ? ? ? ? ? ? if (strValue == ”) then
? ? ? ? ? ? ? ? ? ? ? ? mobox.error(strLuaDEID, strAttr .. “不能為空!”)
? ? ? ? ? ? ? ? ? ? ? ? return
? ? ? ? ? ? ? ? ? ? end
? ? ? ? ? ? ? ? ? ? strKAName = strValue
? ? ? ? ? ? ? ? ? ? strAddAttr = strAddAttr .. ‘{“attr”:”S_KA_NAME”,”value”:”‘ .. strKAName .. ‘”},’
? ? ? ? ? ? ? ?— 常規(guī)屬性
? ? ? ? ? ? ? ? elseif (strAttr == “所屬地區(qū)”) then
? ? ? ? ? ? ? ? ? ? strArea = strValue
? ? ? ? ? ? ? ? ? ? strAddAttr = strAddAttr .. ‘{“attr”:”S_AREA”,”value”:”‘ .. strArea .. ‘”},’
? ? ? ? ? ? ? ? elseif (strAttr == “客戶(hù)類(lèi)型”) then
? ? ? ? ? ? ? ? ? ? strKAType = strValue
? ? ? ? ? ? ? ? ? ? strAddAttr = strAddAttr .. ‘{“attr”:”S_KA_TYPE”,”value”:”‘ .. strKAType .. ‘”},’
? ? ? ? ? ? ? ? end
? ? ? ? ? ? end
? ? ? ? end
? ? ? ? –去除最后一個(gè),
? ? ? ? local strAddAttr1 = trim_laster_char(strAddAttr)
? ? ? ? — 步驟2 根據(jù)客戶(hù)名稱(chēng)來(lái)判斷導(dǎo)入的客戶(hù)是否已經(jīng)存在
? ? ? ? —? ? ? ?如果已經(jīng)存在,根據(jù)導(dǎo)入的數(shù)據(jù)進(jìn)行覆蓋
? ? ? ? —? ? ? ?如果不存在需要?jiǎng)?chuàng)建
? ? ? ? local attrs
? ? ? ? local strCondition = “S_KA_NAME='” .. strKAName .. “‘”
? ? ? ? nRet, strRetInfo = mobox.existThisData(strLuaDEID, “客戶(hù)”, strCondition)
? ? ? ? if (nRet ~= 0) then
? ? ? ? ? ? mobox.error(strLuaDEID, “在檢查客戶(hù)是否存在時(shí)失敗! ” .. strRetInfo)
? ? ? ? ? ? return
? ? ? ? end
? ? ? ? if (strRetInfo == ‘yes’) then
? ? ? ? ? ? — 已經(jīng)存在,根據(jù)導(dǎo)入的數(shù)據(jù)進(jìn)行覆蓋
? ? ? ? ? ? strCondition = “S_KA_NAME='” .. strKAName .. “‘”
? ? ? ? ? ? strSetSQL =? “S_KA_NAME = ‘” .. strKAName ..”‘ , S_KA_TYPE ='” ..strKAType .. “‘ , S_AREA = ‘” .. strArea ..”‘ “
? ? ? ? ? ? nRet, strRetInfo = mobox.updateDataAttrByCondition(strLuaDEID, “客戶(hù)”, strCondition, strSetSQL)
? ? ? ? ? ? if (nRet ~= 0) then
? ? ? ? ? ? ? ? mobox.error(strLuaDEID, strRetInfo)
? ? ? ? ? ? ? ? return
? ? ? ? ? ? end
? ? ? ? elseif (strRetInfo == ‘no’) then
? ? ? ? ? ? — 創(chuàng)建客戶(hù)
? ? ? ? ? ? –mobox.writeSysLog(“strAddAttr1”, strAddAttr1)
? ? ? ? ? ? strAddAttr1 = ‘[‘ .. strAddAttr1 .. ‘]’
? ? ? ? ? ? –mobox.writeSysLog(“strAddAttr2”, strAddAttr1)
? ? ? ? ? ? nRet, strRetInfo = mobox.createDataObj(strLuaDEID, “客戶(hù)”, strAddAttr1)
? ? ? ? ? ? if (nRet ~= 0) then
? ? ? ? ? ? ? ? mobox.error(strLuaDEID, “創(chuàng)建客戶(hù)失敗! ” .. strRetInfo )
? ? ? ? ? ? ? ? return
? ? ? ? ? ? end
? ? ? ? end
? ? end
end
標(biāo)簽:低代碼腳本 上一篇: 下一篇:
展開(kāi)更多
預(yù)約軟件體驗(yàn)

loading...

主站蜘蛛池模板: 日本精品一区二区三区在线观看 | 国产精品亚洲片夜色在线 | 91免费网| 免费操人 | 国产精品一区在线观看你懂的 | 九草视频在线 | 黄色一级视频免费 | 国产欧美日韩在线不卡第一页 | 一级黄色大毛片 | 欧美日韩中字 | 欧美黄色片视频 | 嫩草视频在线播放 | 久久精品国产精品亚洲20 | 久久久久国产成人精品亚洲午夜 | 欧美特黄一免在线观看 | 亚洲精品国产福利 | 看片网站免费 | 宅女深夜福利视频在线 | 国产香蕉视频在线 | 成人免费aa在线观看 | 免费一区在线观看 | 免费一级欧美大片在线观看 | 老司机成人福利视频在线观看免费 | 草草视频网站 | 日韩色视频一区二区三区亚洲 | 香蕉精品视频在线观看 | 日韩中文在线观看 | 正在播放宾馆露脸对白视频 | 欧美激情一区二区三级高清视频 | 色播激情网 | 内地精品露脸自拍视频香蕉 | 日本亚洲精品色婷婷在线影院 | 国产成人精品一区二区三区 | 一级一片免费视频播放 | 黄色片在线 | 日韩欧美亚洲一区 | 中文字幕伊人久久网 | 亚洲黄色一级大片 | 国产v日韩v欧美v精品专区 | 欧美激情整片a级 | 久草在线看片 |