Excel转换为Lua的配置文件

Excel转换为Lua的配置文件

1.下载Excel转Lua的第三方库

首先我们下载一个第三方开源库,来给Excel表生成lua配置文件,下载地址https://github.com/XINCGer/Unity3DTraining/tree/master/XlsxTools

2.准备生成Lua配置文件

  • 在跟Assets平级的目录下,新建一个Tools文件夹,然后把下载的XlsxTools文件夹放在这里
  • 然后在debug模式下编译这个解决方案
    请添加图片描述
    这个文件有几点需要注意:
  1. excel文件必须保存为.xls格式,而不是.xlsx格式

  2. 左下角的tab页签名字必须个文件名一样,并且加一个#前缀,比如我的这个CharacterTable文件,tab页签名字是#CharacterTable

  3. excel的前4行是有特殊含义的:

    第1行是每个字段的名字说明

    第2行是每个字段的变量类型,一般只支持int和string类型

    第3行是每个字段的变量名字,这个变量名字是可以在代码中直接使用的

    第4行是注释,可以详细解释这个字段的含义
    请添加图片描述
    还有最重要的一点:首字段必须是int型,并且变量名必须是Id

  • 配置.ini文件,设置Excel读取和输出的路径
  • 接下来,我们在Tools文件夹下新建一个ExcelToLua.bat文件,用来自动将Excel文件生成出对应的lua文件
cd ./XlsxTools/Xls2Lua/Xls2Lua/bin/Debug/
Xls2Lua ^
pause

双击运行即可生成Lua配置文件

3.使用Lua配置文件

  • 创建ExcelMgr 来管理所有的lua配置文件
ExcelMgr = {
    
     }

-- Excel表管理器

ExcelMgr.CacheTable = {
    
     }

ExcelMgr.CacheTableRow = {
    
     }

function ExcelMgr:GetTable(tableName)
    local oneTable = self.CacheTable[tableName]

    if oneTable ~= nil then
        return oneTable
    end

    oneTable = require(tableName)

    self.CacheTable[tableName] = oneTable

    return self.CacheTable[tableName]
end

function ExcelMgr:GetRow(tableName, id)
    if self.CacheTableRow[tableName] == nil then
        local oneTable = self:GetTable(tableName)

        self.CacheTableRow[tableName] = {
    
    }

        for _,v in ipairs(oneTable) do
            self.CacheTableRow[tableName][v.Id]= v
        end
    end

    if self.CacheTableRow[tableName] then
        return self.CacheTableRow[tableName][id]
    end
end

return ExcelMgr

猜你喜欢

转载自blog.csdn.net/zzzsss123333/article/details/125628433
今日推荐