lua的table转为excel表格的方法

  项目中需要用到转表工具,由于没有直接的转表工具,而且嵌套的table(table里面嵌套了多层表格与数组)。无奈之下,只好采用折衷的方法,先将table表格转为json数据,再用在线转表工具将json转为excel表格。

  第一步,下载lua解释器,关于解释器的链接我会放到后文。然后编写lua脚本,主要代码如下(这里引用了http://haiyi.iteye.com/blog/480185的方法,处理table中信息的方法可以自己写)。然后写了个存储为txt的脚本,具体方法如下(参考https://blog.csdn.net/forestsenlin/article/details/50776417):

function table2json(t)--将表格转换为json
    local function serialize(tbl)
        local tmp = {}
        for k, v in pairs(tbl) do
            local k_type = type(k)
            local v_type = type(v)
            local key = (k_type == "string" and "\"" .. k .. "\":")
                    or (k_type == "number" and "")
            local value = (v_type == "table" and serialize(v))
                    or (v_type == "boolean" and tostring(v))
                    or (v_type == "string" and "\"" .. v .. "\"")
                    or (v_type == "number" and v)
            tmp[#tmp + 1] = key and value and tostring(key) .. tostring(value) or nil
        end
        if table.maxn(tbl) == 0 then --这句话已经过时,但是删除的话会导致后期需要手动修改一下
        return "{" .. table.concat(tmp, ",") .. "}"
        else                           
        return "[" .. table.concat(tmp, ",") .. "]"
        end
    end
    assert(type(t) == "table")
    return serialize(t)
end
function appendFile(fileName,content)
    local f = assert(io.open(fileName,'a'))
    f:write(content)
    f:close()
end
appendFile('poor_reward.txt',table2json(poor_reward))--poor_reward是自定义的表

   这是两个核心的代码,具体操作可以自己处理,最后在最外层调用即可。这里有个麻烦的事情就是调用lua解释器,我是用cmd的方法调用:

  第一步:win+r打开cmd命令,先写入盘,然后打开目录:

  第二步:点击dir查看文件扩展名之类的信息,这个并不一定。

  第三步:写入解释器与运行文件名,点击运行。以后想再次调用的时候,直接点击方向键的上键就可以了。这里是运行文件(cmd命令不识别中文,所以下面是乱码。大致逻辑就是将文件显示出来,然后保存到本地):

 

  然后最好用在线json解析工具解析一下,查看json格式是否正确。最后用在线json转excel转一下,这个是在线解析工具:http://j2e.kpoda.com/。

猜你喜欢

转载自www.cnblogs.com/yangyadong66/p/9429523.html