(转载) 游戏策划的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. # "<type ‘unicode‘>"
  7. # "<type ‘float‘>"
  8. def my_text_(text):
  9. """Return the translated text from json text."""
  10. v = ("<type ‘", "‘>")
  11. if text[:len(v[0])] != v[0]: return text
  12. if text[-len(v[1]):] != v[1]: return text
  13. return text[len(v[0]) : -len(v[1])]
  14. def sheet2json(sheet, jsonfile):
  15. row = 0
  16. attribute_row = []
  17. for col in range(sheet.ncols):
  18. attribute_row.append(sheet.cell(row, col).value)
  19. attribute = {}
  20. row=1
  21. for col in range(sheet.ncols):
  22. attribute[attribute_row[col]] = my_text_(repr(type(sheet.cell_value(row, col))))
  23. entities = []
  24. for row in range(2, sheet.nrows):
  25. entity = {}
  26. for col in range(sheet.ncols):
  27. entity[attribute_row[col]] = sheet.cell(row, col).value
  28. row_dict = {}
  29. row_dict["entity"] = entity
  30. entities.append(row_dict)
  31. sheet_dict = {}
  32. sheet_dict["entities"] = entities
  33. filed = codecs.open("../../jsonsFromExcel/"+jsonfile, "w", "utf-8") #输出目录
  34. filed.write("%s" % json.dumps(sheet_dict, ensure_ascii=False, indent=4))
  35. #print json.dumps(sheet_dict, ensure_ascii=False, indent=4)
  36. filed.close()
  37. if len(sys.argv) != 2 :
  38. print "usage: %s [input xls file]" % sys.argv[0]
  39. print "e.g. : %s myinput.xls" % sys.argv[0]
  40. print "Note : the input file should be MS excel doc.\n"
  41. sys.exit()
  42. xls_file = sys.argv[1]
  43. workbook = open_workbook(xls_file)
  44. for sheet in workbook.sheets():
  45. jsonfile = sheet.name + ".json"
  46. #print "Converting %s‘s %s from EXCEL‘s sheet to JSON as %s" % (xls_file, sheet.name, jsonfile)
  47. sheet2json(sheet, jsonfile)

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

原文地址:http://blog.csdn.net/zhuangyou123/article/details/10068729

时间: 2024-10-05 11:51:51

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

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

使用python工具将excel生成的json文件,可以用在很多语言里,比如objective-c, C++,lua,javascript等等,来为游戏关卡配置数据. 如果是选择的lua语言,这个json文件还不能直接使用.因为json文件里只是json格式的字符串,需要先转换成lua里的数据格式:table. 将json文件转成table,需要利用第三方类库CJSON,代码如下: [cpp] view plaincopy function tableFromFile (fileName ) l

【游戏开发】Excel表格批量转换成lua的转表工具

一.简介 在上篇博客<[游戏开发]Excel表格批量转换成CSV的小工具> 中,我们介绍了如何将策划提供的Excel表格转换为轻便的CSV文件供开发人员使用.实际在Unity开发中,很多游戏都是使用Lua语言进行开发的.如果要用Lua直接读取CSV文件的话,又要写个对应的CSV解析类,不方便的同时还会影响一些加载速度,牺牲游戏性能.因此我们可以直接将Excel表格转换为lua文件,这样就可以高效.方便地在Lua中使用策划配置的数据了.在本篇博客中,马三将会和大家一起,用C#语言实现一个Exce

C#.net word excel powerpoint (ppt) 转换成 pdf 文件

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms; using Word = Microsoft.Office.Interop.Word;using Excel = Microsoft.Office

如何将数据库中的表导成XML文件

1.现将数据库中的信息读到DataTable中 2.用函数将DataTable转为string private string ConvertDataTableToXML(DataTable dt) { if (dt != null) { MemoryStream ms = null; XmlTextWriter XmlWt = null; try { ms = new MemoryStream(); XmlWt = new XmlTextWriter(ms, Encoding.Unicode);

iis配置js支持读取json文件配置

默认情况下,iis不支持解析.json文件,这就需要我们自己在iis下配置方法一:iis配置1.点击开始菜单选择控制面板: 2.控制面板内点击管理工具,选择Internet信息服务(IIS)管理器. . 3.点击MIME类型4.操作内点击“添加...”文件扩展名:.jsonMIME类型:application/json.. 点击“处理程序映射”操作内选择“添加脚本映射”请求路径为:*.json,可执行文件:C:\WINDOWS\system32\inetsrv\asp.dll名称:JSON 以上

cocos2d-x 读取CSV文件,读取本地Excel配置表的方法

//CSVReader.h #define MAP_LINE std::map<std::string, std::string> //key为首行字符串, value为此列字符串 #define MAP_CONTENT std::map<int, MAP_LINE> //key为code, value为一行map #define VEC_MAP std::vector<std::pair<std::string, int>> //csv文件读取器 clas

【游戏开发】Excel表格批量转换成CSV的小工具

一.前言 在工作的过程中,我们有时可能会面临将Excel表格转换成CSV格式文件的需求.这尤其在游戏开发中体现的最为明显,策划的数据文档大多是一些Excel表格,且不说这些表格在游戏中读取的速度,但就论占用内存来说,同样的数据量Excel表格所占用的内存要远远大于CSV,因此将Excel转换成CSV势在必行.如果单单转换一个Excel表格还好,直接另存为就搞定的,但是如何将一个文件下的N个Execl表格转成CSV呢?今天马三就来和大家一起用Python撸一个Excel表格批量转换CSV的小工具—

【转载】iOS麦克风录制音频并保存成mp3文件的Demo

转自 tusm 写的一个录屏Demo,在此贴下Demo的源代码方便使用 使用的是AVFoundation 录制后麦克风输入的音频,录制结束后将数据转成了mp3格式并保存成文件 // // ViewController.m // AudioDemo // // Created by tusm on 15/2/14. // Copyright (c) 2015年 tusm. All rights reserved. // #import "ViewController.h" #import

我的游戏服务器类库 -- 配置表及其搜索算法

配置表 想必所有的游戏服务器都要用到配置表,配置表可能来自于文件(Excel.XML.JSON等)或者数据库,但为了避免频繁访问磁盘文件或数据库,最终都会在服务器启动时读到内存里.配置表一般由很多行组成,每一行有一个唯一ID.在游戏逻辑中,可以根据ID来查找某项配置.由于每一个游戏服务器都要写类似的逻辑,所以我把它们抽象出来,加到了我的GitHub项目里. 配置项 没有对配置表项做更多的假设,只要求它有一个唯一ID: public interface Config { public int ge