|
4 | 4 | #======================================================================== |
5 | 5 | # FileName: excel2lua_mod.py |
6 | 6 | # Author: kevinlin |
7 | | -
|
8 | | -# Email: linjiang1205@qq.com |
9 | | -# PS1: 这个脚本参考过shimmer之前写的 |
10 | | -# PS2: 这个工具是jameyli在TNT中写出的,当时基于我写的一些解析xls脚本。 |
11 | | -
|
12 | 7 | # History: |
13 | | -2013年8月14日 19:36:20 kevin -> 看了一下shimmer写的转换脚本,在做商城时,觉得欠缺一点功能 |
14 | | - 如需要定义N种物品,即需要表格支持结构体的定义和重复N次。于是打算添加点功能。 |
15 | 8 |
|
16 | | -2013年8月15日 18:10:58 kevin -> 本来想基于原脚本修改的,现在几乎是重写了遍解析过程。不想看原代码了。 |
17 | | - 为什么看别人的代码总那么难受呢,是因为没有注释,还是没有耐心?? |
18 | | - 当然,还是要感谢前人的代码作参考~~~~ |
| 9 | +2013年8月15日 18:10:58 创建文件 |
19 | 10 |
|
20 | | -2013年8月15日 22:27:06 kevin |
21 | | -添加了对默认值的支持。当为空时,使用默认值。有人说默认值会加大表格占内存,试问有多少会是为空的??空太多说明表格设计就有问题吧?? |
| 11 | +2013年8月15日 22:27:06 添加了对默认值的支持。当为空时,使用默认值。 |
22 | 12 |
|
23 | | -2013年8月16日 11:50:21 kevin |
24 | | -添加带级别的标准输出? 和打印日志类似。如设置级别高时,只打印特别重要的日志,当级别低时,一些调试的日志会打印出来 |
25 | | -当脚本解析出问题时,调整日志级别以便更好的定位问题 |
| 13 | +2013年8月16日 11:50:21 添加带级别的标准输出? 和打印日志类似。如设置级别高时,只打印特别重要的日志,当级别低时,一些调试的日志会打印出来 当脚本解析出问题时,调整日志级别以便更好的定位问题 |
26 | 14 |
|
27 | | -2013年8月21日 22:21:20 kevin |
28 | | -将通过这个导出的配置统一在模块config下。其实不用模块更好 。直接全局可见? |
| 15 | +2013年8月21日 22:21:20 将通过这个导出的配置统一在模块config下。其实不用模块更好 。直接全局可见? |
29 | 16 |
|
30 | | -2013年8月28日 12:48:32 kevin |
31 | | -添加对表格中有重复的key的解析。在使用脚本时通过参数指定是否有此行为 |
| 17 | +2013年8月28日 12:48:32 添加对表格中有重复的key的解析。在使用脚本时通过参数指定是否有此行为 |
32 | 18 |
|
33 | | -2013年9月13日 16:13:15 kevin |
34 | | -将这个解析模块独立出来。main拆在别的文件中实现 |
| 19 | +2013年9月13日 16:13:15 将这个解析模块独立出来。main拆在别的文件中实现 |
35 | 20 |
|
36 | | -2013年9月5日 19:37:25 kevin |
37 | | -添加支持subkey.当key有重复时,可以指定是否有sub_key, 如果设置sub_key_col为非0.则认为那行是sub key的值。 |
38 | | -具体的应用是表格Dungeon.xls中的DUNGEON_LIST表格。 |
39 | | -命令:./excel2lua_kevin.py excel/Dungeon2.xls DUNGEON_LIST 1 1 |
40 | | -说明: 第一个参数1表示这个表格的key是有重复的。 第二个1表示在处理重复的key时,对应table的sub_key为第1列的值(从0开始) |
| 21 | +2013年9月5日 19:37:25 添加支持subkey.当key有重复时,可以指定是否有sub_key, 如果设置sub_key_col为非0.则认为那行是sub key的值。 |
41 | 22 |
|
42 | | -2013年11月8日 13:29:58 kevin |
43 | | -将table中的索引从1开始(之前从0,不太符合lua的数组规则) |
| 23 | +2013年11月8日 13:29:58 将table中的索引从1开始(之前从0,不太符合lua的数组规则) |
44 | 24 |
|
45 | | -2013年11月14日 16:21:36 kevin |
46 | | -支持表格的key为string。生成的table形式如 ["宋江"] = {70000100, 70000101} |
| 25 | +2013年11月14日 16:21:36 支持表格的key为string。生成的table形式如 ["宋江"] = {70000100, 70000101} |
47 | 26 |
|
48 | | -2013年12月2日 17:10:15 kevin |
49 | | -对于array数组解析,自动去除多余的分隔符(在文本末尾的分隔符,如123;355;这里的最后那个分号;) |
| 27 | +2013年12月2日 17:10:15 对于array数组解析,自动去除多余的分隔符(在文本末尾的分隔符,如123;355;这里的最后那个分号;) |
50 | 28 |
|
51 | | -2013年12月19日 17:07:59 kevin |
52 | | -添加自行指定分隔符功能,在array后添加=, 或者=|这些,指定分隔符为,或者| |
| 29 | +2013年12月19日 17:07:59 添加自行指定分隔符功能,在array后添加=, 或者=|这些,指定分隔符为,或者| |
53 | 30 |
|
54 | | -2014年1月7日 15:10:51 kevin |
55 | | -修改digit array/string array中当value为空时,生成失败的问题 |
| 31 | +2014年1月7日 15:10:51 修改digit array/string array中当value为空时,生成失败的问题 |
56 | 32 |
|
57 | | -2014年1月8日 20:41:59 kevin |
58 | | -修改digit类型的值,使不会生成浮点数值。我们不会有浮点数。全部转换为整数 |
| 33 | +2014年1月8日 20:41:59 修改digit类型的值,使不会生成浮点数值。我们不会有浮点数。全部转换为整数 |
59 | 34 | 修改对于array类型,生成时不使用默认值,不然会有{0}这种非预期的输出 |
60 | 35 |
|
61 | | -2014年1月21日 16:47:41 kevin |
62 | | -应客户端同学(garyzheng)的要求,并且在客户端内存占用的对比过后,认为游戏中的配置占用内存太高,这里将配置生成的空项去除, |
63 | | -听说这样能减少建表的时间.我想应该会吧。 满足你们~~~ 使用defaultValue = "nil" 作为是否置空的标志。 |
64 | | -
|
65 | | -2014年1月23日 00:05:17 kevin |
66 | | -修复上面修改造成的bug.有些空的struct地方需要跳过生成 |
67 | | -
|
68 | | -2014年01月23日 15:33:06 shimmer |
69 | | -过年还想回家了,现在这个默认值的问题导致服务器老是coredown,先简单暴力地把svr与cli生成配置的地方分成两份把 |
| 36 | +2014年1月21日 16:47:41 这里将配置生成的空项去除, 使用defaultValue = "nil" 作为是否置空的标志。 |
70 | 37 |
|
71 | | -2014年3月17日 15:24:55 @kevin |
72 | | -应客户端要求(armyshu), 为了能够打配置的差异包,将生成的文件的头部的时间修改为那个文件的最后更新时间,防止影响差异包生成 |
| 38 | +2014年1月23日 00:05:17 修复上面修改造成的bug.有些空的struct地方需要跳过生成 |
73 | 39 |
|
74 | | -2014年6月19日 13:15:47 @kevin |
75 | | -应客户端要求,将客户端生成的配置,去掉date那一行。否则说会影响他们的差异包。。 |
| 40 | +2014年6月19日 13:15:47 将客户端生成的配置,去掉date那一行。否则说会影响生成配置的差异包。。 |
76 | 41 |
|
77 | | -2014-12-20 14:03:01 @kevin |
78 | | -重构此模块,将代码写得易懂些 |
| 42 | +2014年12月20日 14:03:01 简单重构此模块,将代码写得易懂些 |
79 | 43 |
|
80 | 44 | # TODO : |
81 | 45 | 1. 将表格的定义添加到生成的lua文件中,以注释形式,这样好像更方便观看lua配置 |
82 | 46 | 2. 格式对得不太整齐。并且有些不必要的分号和空格考虑去掉 |
83 | 47 | 3. 将struct结构内当没有填东西时,忽略掉不生成为空的 |
84 | 48 |
|
85 | | -# LastChange: 2013-08-14 19:31:09 |
| 49 | +# LastChange: 2015-1-10 |
86 | 50 | #======================================================================== |
87 | 51 | ''' |
88 | 52 | import os |
89 | | -import xlrd |
90 | 53 | import sys |
91 | 54 | from datetime import * |
92 | 55 | import time |
|
106 | 69 | logging.error("error") |
107 | 70 | logging.critical("critical") |
108 | 71 | ''' |
| 72 | +try: |
| 73 | + import xlrd |
| 74 | +except: |
| 75 | + #print "not find xlrd in python sit-packages, import xlrd from local directory" |
| 76 | + libPath = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'xlrd') |
| 77 | + sys.path.append( libPath ) |
| 78 | + import xlrd |
| 79 | + |
109 | 80 |
|
110 | 81 | #LOG_LEVEL = logging.DEBUG |
111 | 82 | LOG_LEVEL = logging.WARNING |
@@ -613,7 +584,7 @@ def OutputFileHeader(xls_file_name, output_file_name, sheet_name, is_client): |
613 | 584 | @source xls: %s |
614 | 585 | @sheet name: %s |
615 | 586 | @brief: this file was create by tools, DO NOT modify it! |
616 | | - @author: kevinlin@tencent.com |
| 587 | + @author: kevin |
617 | 588 |
|
618 | 589 | ]]-- |
619 | 590 | """; |
|
0 commit comments