• 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
    
    • 1
    • 2
    • 3

    双击运行即可生成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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
  • 相关阅读:
    jvm07
    2023年中国半导体缺陷检测设备市场规模及发展趋势分析[图]
    面向OLAP的列式存储DBMS-13-[ClickHouse]的MergeTree表引擎原理解析
    解决docker安装mysql的乱码问题
    在Eclipse将Java代码打包为jar用于jmeter BeanShell
    IE 浏览器正式退休
    docker 安装 redis 6.0.8 cluster 实战 (3主3从) 动态缩容
    局域网内root 权限连接mysql数据库
    基于Redis的分布式限流器Java实现
    python爬虫requests.get乱码问题
  • 原文地址:https://blog.csdn.net/zzzsss123333/article/details/125628433