快捷搜索: 王者荣耀 脱发

一个xlsx转lua的python小工具

目录结构: xlsx文件格式: xlsxToLua.py如下:

import xlrd
import os

def toLua():
    pwd = "./"
    fileList = list(os.listdir(pwd))  # 列出文件夹下所有的目录与文件
    for file in fileList:
        if file.find(".xlsx") > 0 and ( file.find("~") < 0 ):
            fileName = file[:file.find(".xlsx")]
            print("开始转化:", fileName)
            filepwd = pwd + "/" + file
            with xlrd.open_workbook(filepwd) as workbook:
                sheet1 = workbook.sheet_by_index(0) # sheet索引从0开始
                nrows = sheet1.nrows
                keyList = []
                strFlie = "-- $Id$
module("Data")

"
                strFlie = strFlie + fileName + " = { 
"
                IDindex = 0
                for i in range(nrows):
                    valueList = sheet1.row_values(i)
                    if valueList[0] == "ID":
                        keyList = valueList
                        IDindex = i
                    if i > IDindex and IDindex > 0:
                        str1 = "    [" + str(i - IDindex) + "] = {"
                        for j in range(len(valueList)):
                            value = valueList[j]
                            if value == "":
                                value = (sheet1.row_values(i - 1)[j])
                            if type(value) == type(1.0) or type(value) == type(1):
                                str1 = str1 + keyList[j] + " = " + str(int(value)) + ", "
                            else:
                                str1 = str1 + keyList[j] + " = "" + str(value) + "", "
                        str1 = str1[:len(str1) - 2] + "}
"
                        strFlie = strFlie + str1

                strFlie = strFlie + "}"
                print(strFlie)

                #写入文件
                with open("./toLua/" + fileName + ".lua", "w+", encoding=utf-8) as f:
                    f.write(strFlie)
                    f.close()


if __name__ == "__main__":
    toLua()

运行结果: 生成文件:

经验分享 程序员 微信小程序 职场和发展