使用python解析xls生成lua配置
简述:使用python解析xls生成角色lua配置,根据id获取配置-获取类型和等级,生成游戏对象。得到类型和等级后通过ObjManger类获取相应属性及特殊处理。
python脚本:
使用xlrd库解析xls文件,得到每个格子的数据。
# -*- coding: UTF-8 -*-
# Author:Blanc
# 博客地址:http://blog.csdn.net/u013320664/
import xlrd
fileOutput = open('RoleCfg.lua','w')
# 让py可以读取文件中的中文
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
# 可以在这里写一些固定的注释代码之类的
writeData = "-- @author:Blanc\n\n\n"
workbook = xlrd.open_workbook('RoleCfg.xls')
print "There are {} sheets in the workbook".format(workbook.nsheets)
#生成配置名为RoleCfg
writeData = writeData + 'RoleCfg = {\n\n'
#获取每一个sheet中的行列数据
for booksheet in workbook.sheets():
writeData = writeData+ ' ' + booksheet.name + ' = {\n'
for row in xrange(booksheet.nrows):
if row > 1:
writeData = writeData + ' [' + str(int(booksheet.cell(row, 0).value)) + ']' + ' = {' #写入id
for col in xrange(booksheet.ncols):
#处理格式,下标从零开始
if col == 1 or col == 4:
value = booksheet.cell(row, col).value
writeData = writeData + ' ' + booksheet.cell(0, col).value + ' = "' + str(value) + '",'
else:
value = booksheet.cell(row, col).value
writeData = writeData + ' ' + booksheet.cell(0, col).value + ' = ' + str(int(value)) + ','
else:
writeData = writeData + '},\n'
else:
writeData = writeData + ' },\n\n'
else :
writeData = writeData + '},\n\n'
fileOutput.write(writeData)
fileOutput.close()
excel格式:
生成的lua配置表:
-- @author:Blanc
RoleCfg = {
man = {
[1] = { id = 1, name = "习武者", type = 1, level = 1, desc = "物理近战",},
[2] = { id = 2, name = "善远攻者", type = 2, level = 1, desc = "物理远程",},
[3] = { id = 3, name = "法师", type = 3, level = 1, desc = "法术远程",},
},
moster = {
[1] = { id = 1, name = "习武者", type = 1, level = 1, desc = "物理近战",},
[2] = { id = 2, name = "善远攻者", type = 2, level = 1, desc = "物理远程",},
},
},