<nav id="auuga"><nav id="auuga"></nav></nav><menu id="auuga"><tt id="auuga"></tt></menu>
  • <menu id="auuga"></menu>

    產品中心 業內新聞 案例中心 視頻中心

    Excel數據導入Mobox低代碼平臺 Excel數據導入Mobox低代碼平臺

    Excel數據導入Mobox低代碼平臺

    分類:二次開發 產品中心 實施方案 564

    Excel數據導入Mobox低代碼平臺

     

    我們系統上線的時候,原先的歷史數據是沒有的,為了快速接軌企業已有數據,我們可以通過excel 對歷史數據進行導入操作。導入一般可以通過腳本做一些定制開發來實現

     

    列子:

    數據導入的sheet 要求

    這個系統只能導入,左邊第一個sheet (命名無所謂)(注意:若數據列表 這個sheet左邊還有隱藏的sheet,那么系統也不能獲取 數據列表sheet頁的數據)

    對Excel單元格的要求

    單元個里面的數據,只能是字符串或數值。若是計算公式或函數 ,將無法獲取

    另外,單元個內容 不能出現 /\<> & 符號,不能有換行或大量空格

    分析excel格式

    1、字段分3類:

    • 關鍵字段

    如,產品名稱 ,這個是必須有數值的

    • 屬性字段

    用于登記各種屬性信息

    • 計算字段

    若有數據,則直接獲取

    若沒有,可以通過lua腳本計算生成

    這種字段,一般也是必須有數值的

    2、第一行是表頭行,數據行從第二行開始

     

    定義導入功能

    通過Mobox 3000 功能點進行定義,設置界面如下:

    導入腳本,參考:

    json? = require(“json”)
    mobox = require(“OILua_JavelinExt”)
    require(“oi_basestrfunc”)
    function ImportKA(strLuaDEID)
    ? ? local nRet, strRetInfo
    ? ? — 獲取導入的數據, 返回 [[{“attr”:”xx”,”value”:””},…]]
    ? ? — V2.0
    ? ? nRet, strRetInfo = mobox.getCurEditDataPacket(strLuaDEID)
    ? ? if (nRet ~= 0 or strRetInfo == ”) then
    ? ? ? ? mobox.error(strLuaDEID, “無法獲取導入數據!”)
    ? ? ? ? return
    ? ? end
    ? ? local input_rows = json.decode(strRetInfo)
    ? ? local n, nCount, nValue, nMaxRow, nRow
    ? ? local strAddAttr = ”
    ? ? — 一些關鍵屬性
    ? ? local strKAName = ”
    ? ? local strKAType = ”
    ? ? local strArea = ”
    ? ? — 步驟1 獲取從excel導入的一行數據,根據excel的列定義進行屬性組合 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
    ? ? ? ? ? ? ? ? — 根據導入的excel列頭名稱進行判斷
    ? ? ? ? ? ? ? ? — 關鍵屬性判斷
    ? ? ? ? ? ? ? ? if (strAttr == “客戶名稱”) then
    ? ? ? ? ? ? ? ? ? ? if (strValue == ”) then
    ? ? ? ? ? ? ? ? ? ? ? ? mobox.error(strLuaDEID, strAttr .. “不能為空!”)
    ? ? ? ? ? ? ? ? ? ? ? ? return
    ? ? ? ? ? ? ? ? ? ? end
    ? ? ? ? ? ? ? ? ? ? strKAName = strValue
    ? ? ? ? ? ? ? ? ? ? strAddAttr = strAddAttr .. ‘{“attr”:”S_KA_NAME”,”value”:”‘ .. strKAName .. ‘”},’
    ? ? ? ? ? ? ? ?— 常規屬性
    ? ? ? ? ? ? ? ? elseif (strAttr == “所屬地區”) then
    ? ? ? ? ? ? ? ? ? ? strArea = strValue
    ? ? ? ? ? ? ? ? ? ? strAddAttr = strAddAttr .. ‘{“attr”:”S_AREA”,”value”:”‘ .. strArea .. ‘”},’
    ? ? ? ? ? ? ? ? elseif (strAttr == “客戶類型”) then
    ? ? ? ? ? ? ? ? ? ? strKAType = strValue
    ? ? ? ? ? ? ? ? ? ? strAddAttr = strAddAttr .. ‘{“attr”:”S_KA_TYPE”,”value”:”‘ .. strKAType .. ‘”},’
    ? ? ? ? ? ? ? ? end
    ? ? ? ? ? ? end
    ? ? ? ? end
    ? ? ? ? –去除最后一個,
    ? ? ? ? local strAddAttr1 = trim_laster_char(strAddAttr)
    ? ? ? ? — 步驟2 根據客戶名稱來判斷導入的客戶是否已經存在
    ? ? ? ? —? ? ? ?如果已經存在,根據導入的數據進行覆蓋
    ? ? ? ? —? ? ? ?如果不存在需要創建
    ? ? ? ? local attrs
    ? ? ? ? local strCondition = “S_KA_NAME='” .. strKAName .. “‘”
    ? ? ? ? nRet, strRetInfo = mobox.existThisData(strLuaDEID, “客戶”, strCondition)
    ? ? ? ? if (nRet ~= 0) then
    ? ? ? ? ? ? mobox.error(strLuaDEID, “在檢查客戶是否存在時失敗! ” .. strRetInfo)
    ? ? ? ? ? ? return
    ? ? ? ? end
    ? ? ? ? if (strRetInfo == ‘yes’) then
    ? ? ? ? ? ? — 已經存在,根據導入的數據進行覆蓋
    ? ? ? ? ? ? strCondition = “S_KA_NAME='” .. strKAName .. “‘”
    ? ? ? ? ? ? strSetSQL =? “S_KA_NAME = ‘” .. strKAName ..”‘ , S_KA_TYPE ='” ..strKAType .. “‘ , S_AREA = ‘” .. strArea ..”‘ “
    ? ? ? ? ? ? nRet, strRetInfo = mobox.updateDataAttrByCondition(strLuaDEID, “客戶”, strCondition, strSetSQL)
    ? ? ? ? ? ? if (nRet ~= 0) then
    ? ? ? ? ? ? ? ? mobox.error(strLuaDEID, strRetInfo)
    ? ? ? ? ? ? ? ? return
    ? ? ? ? ? ? end
    ? ? ? ? elseif (strRetInfo == ‘no’) then
    ? ? ? ? ? ? — 創建客戶
    ? ? ? ? ? ? –mobox.writeSysLog(“strAddAttr1”, strAddAttr1)
    ? ? ? ? ? ? strAddAttr1 = ‘[‘ .. strAddAttr1 .. ‘]’
    ? ? ? ? ? ? –mobox.writeSysLog(“strAddAttr2”, strAddAttr1)
    ? ? ? ? ? ? nRet, strRetInfo = mobox.createDataObj(strLuaDEID, “客戶”, strAddAttr1)
    ? ? ? ? ? ? if (nRet ~= 0) then
    ? ? ? ? ? ? ? ? mobox.error(strLuaDEID, “創建客戶失敗! ” .. strRetInfo )
    ? ? ? ? ? ? ? ? return
    ? ? ? ? ? ? end
    ? ? ? ? end
    ? ? end
    end
    標簽:低代碼腳本 上一篇: 下一篇:
    展開更多
    預約軟件體驗

    loading...

    亚洲国产成人久久综合碰