- 把配置表格.xlsx数据转为Lua配置表,其实就是把表格数据用Lua写一遍,这里的实现重点就是setmetatable设置元表。
- 以下以表格student_info.xlsx举例,展示对应Lua配置表内容:
- 表格内容:
student_info.xlsx内容
-
- 对应Lua配置表起名为student_info.lua,内容如下。姓名name考虑到以后有重复的可能,所以单独建了一个表__CS存储。
--[[ 列名称 备注 id 编号 name 姓名 age 年龄 ]] -- 列名称 local __key_map = { id = 1, name = 2, age = 3, } -- string 常量 local __CS = { "张三", "李四", "王五", } -- meta table local mt = { __index = function(t, k) if __key_map[k] == nil then return nil end return t[__key_map[k]] end } local cfg = {} cfg[1000]= setmetatable({ 1000, __CS[1], 15,}, mt) cfg[1001]= setmetatable({ 1001, __CS[2], 16,}, mt) cfg[1002]= setmetatable({ 1002, __CS[3], 15,}, mt)
return cfg
测试打印王五的信息(这里省略了require部分):
print(cfg[1002].id, cfg[1002].name, cfg[1002].age)
运行结果如下: