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/。

原文地址:https://www.cnblogs.com/yangyadong66/p/9429523.html

时间: 2024-10-11 11:01:08

lua的table转为excel表格的方法的相关文章

DB2数据库表转为excel表格操作

从db2中导出表有种方法很简单,时间长的程序员都接触过吧.之前遇到这个问题从网上找不到合适的答案,今天分享出来希望可以帮到需要的同行. 因为我家里没装db2  所以以mysql界面为例子.操作很简单对结果没影响. 在db2 写sql语句.select * from 表名得到你需要的数据.选中需要的内容    Ctrl + C 复制后,找到Excel表格. 点击此处的常规选择文本选项. 再Ctrl +V复制即可.本人试过完美解决,希望亲身的经历能帮到一起努力的你!!

Python读写excel表格的方法二

目的:实现用python的另一种方法做excel的读取.新增操作. 环境:ubuntu 16.04  Python 3.5.2 情景:之前介绍了一种操作excel文件的方法(私链),现在使用另一种方法读写excel文件,一次性读出或写入,读写也很方便,读出为有序字典,像二维数组,需要用到3个第三方模块,pyexcel-io, pyexcel-xls, xlrd,主要导入pyexcel-xls和collections,pyexcel-xls基于xlrd和pyexcel-io,所以支持xls和xls

Python读写excel表格的方法

目的:实现用python做excel的读取.新增.修改操作. 环境:ubuntu 16.04  Python 3.5.2 用python读写文档,一般是操作txt文件或者可以用记事本打开的文件,因为这个操作很直接,不需要导入其他模块,但如果想要对excel表格进行操作,就需要导入其他模块,包括:xlrd(读取),xlwt(写入),xlutils(复制),一般是这三个模块,且需要另外下载,http://pypi.python.org/pypi/模块名. 表格的读取: 读取只需要导入xlrd模块:

uLua/toLua加载protobuf转lua的table为bool的解决方法

当我们加载protobuf对应的lua的table的时候,我们使用如下方式来加载 local person_pb = require 'Protol.person_pb' 注意,这个table前面的Protol.这段一定不能去掉,如果去掉了,你加载到的persob_pb将会是一个bool类型的值. 如果加上这个Protol.的话,你才能加载到真正有的数据表. 也许是lua和protobuf工具关联时的一个约定,也许是这样,反正要放在protol文件夹下就能加载到数据表.

原生JavaScript 导出excel表格(兼容ie和其他主流浏览器)

因同事的需求是想前端导出excel表格,网上找了一些demo,自己修改了一下,可能以后会用到,记录下来吧,兼容ie和一些主流浏览器,ie可能会报错,原因参考 这里,edge 浏览器还没有办法导出,正在尝试... <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>table 导出excel表格</title>

VB.NET版机房收费系统---导出Excel表格

datagridview,翻译成中文的意思是数据表格显示,使用DataGridView控件,可以显示和编辑来自不同类型的数据源的表格,将数据绑定到DataGridView控件非常简单和直观,大多数情况下,只需要设置DataSource属性即可,在绑定到包含多个列表或表的数据库源时,只需将DataMember属性设置为绑定的列表或表的字符串即可.机房收费系统多次用到数据表格的显示,并且导出为Excel表格,第一次机房收费系统是用VB版本的,她导出Excel的方法如下: 打开VB-工程-应用-勾选M

【游戏开发】Excel表格批量转换成lua的转表工具

一.简介 在上篇博客<[游戏开发]Excel表格批量转换成CSV的小工具> 中,我们介绍了如何将策划提供的Excel表格转换为轻便的CSV文件供开发人员使用.实际在Unity开发中,很多游戏都是使用Lua语言进行开发的.如果要用Lua直接读取CSV文件的话,又要写个对应的CSV解析类,不方便的同时还会影响一些加载速度,牺牲游戏性能.因此我们可以直接将Excel表格转换为lua文件,这样就可以高效.方便地在Lua中使用策划配置的数据了.在本篇博客中,马三将会和大家一起,用C#语言实现一个Exce

excel表格文件如何转为pdf

我们在日常编辑表格中,最擅长制作的应该是excel表格,但常常很多时候给别人发送excel文件的时候需要转换成pdf格式,这可以给人专业的感觉.但很多刚刚接触的朋友会有疑问,excel表格文件如何转为pdf?今天小编就来教下大家怎么将excel表格文件转为pdf?       其实excel表格文件转为pdf并不是什么难事.只要大家找对软件就不是困难了.下面是excel表格文件转为pdf的详细步骤,不会的跟着我一起操作吧! 1.打开浏览器进入百度首页,输入"迅捷PDF转换器",在显示的

ASP.NET输出EXCEL表格的几种方法(总结修改)

这几天要从数据库导出EXCEL表格,就找了N钟方法,经测试,下面的方法比较的好用一点.都是经过输入DataTable而导出的.不过导出的EXCEL都不是正规的EXCEL格式,只能说是HTML格式的,导出的再导入进数据库就会出现问题了.想导入的话用EXCEL打开另存为EXCEL格式就好了 1.利用DataRow直接输出,经测试,没有乱码.        public bool LendOutExcel(string strFileName, DataTable DT)        {