首页 > 代码库 > (转载) 游戏策划的excel配置表转成json文件(一)

(转载) 游戏策划的excel配置表转成json文件(一)

游戏客户端里一般无法读取策划写的excel配置表,需要先转成可以用的格式,例如json,xml格式。

我用到的工具是python脚本,python脚本的强大就在这不提啦,各种牛X的成熟库。。。

执行脚本如下: 

[cpp] view plaincopy
 
  1. import os  
  2. import sys  
  3. import codecs  
  4. import json  
  5. from xlrd import open_workbook  
  6.   
  7.   
  8. # "<type ‘unicode‘>"  
  9. # "<type ‘float‘>"  
  10. def my_text_(text):  
  11.     """Return the translated text from json text."""  
  12.     v = ("<type ‘", "‘>")  
  13.     if text[:len(v[0])] != v[0]: return text  
  14.     if text[-len(v[1]):] != v[1]: return text  
  15.     return text[len(v[0]) : -len(v[1])]  
  16.   
  17. def sheet2json(sheet, jsonfile):  
  18.   
  19.     row = 0  
  20.     attribute_row = []  
  21.     for col in range(sheet.ncols):  
  22.         attribute_row.append(sheet.cell(row, col).value)  
  23.   
  24.     attribute = {}  
  25.     row=1  
  26.     for col in range(sheet.ncols):  
  27.         attribute[attribute_row[col]] = my_text_(repr(type(sheet.cell_value(row, col))))  
  28.   
  29.     entities = []  
  30.     for row in range(2, sheet.nrows):  
  31.   
  32.         entity = {}  
  33.         for col in range(sheet.ncols):  
  34.             entity[attribute_row[col]] = sheet.cell(row, col).value  
  35.   
  36.         row_dict = {}  
  37.         row_dict["entity"] = entity  
  38.   
  39.         entities.append(row_dict)  
  40.   
  41.     sheet_dict = {}  
  42.     sheet_dict["entities"] = entities  
  43.   
  44.     filed = codecs.open("../../jsonsFromExcel/"+jsonfile, "w", "utf-8") #输出目录  
  45.     filed.write("%s" % json.dumps(sheet_dict, ensure_ascii=False, indent=4))  
  46.     #print json.dumps(sheet_dict, ensure_ascii=False, indent=4)  
  47.     filed.close()  
  48.   
  49.   
  50.   
  51. if len(sys.argv) != 2 :  
  52.     print "usage: %s [input xls file]" % sys.argv[0]  
  53.     print "e.g. : %s myinput.xls" % sys.argv[0]  
  54.     print "Note : the input file should be MS excel doc.\n"  
  55.   
  56.     sys.exit()  
  57.   
  58.   
  59. xls_file = sys.argv[1]  
  60.   
  61. workbook = open_workbook(xls_file)  
  62.   
  63. for sheet in workbook.sheets():  
  64.     jsonfile = sheet.name + ".json"  
  65.     #print "Converting %s‘s %s from EXCEL‘s sheet to JSON as %s" % (xls_file, sheet.name, jsonfile)  
  66.   
  67.     sheet2json(sheet, jsonfile)  

 

用这个命令前需要先在系统里安装xlrd库,一个解析excel文件的第三方库

 

(转载) 游戏策划的excel配置表转成json文件(一)