当前位置:首页 > 天道酬勤 > 正文内容

lua嵌入python(python 对比 lua)

张世龙2021年12月21日 19:15天道酬勤1350

excel的表格形式

说明:

1 .前三行是字段的中文解释、字段名和字段类型

2 .对程序不使用的字段附加“_”前缀,不在lua文件中生成

3 .计划填写数值时,偶尔会泄露数据。 如果有空值,请根据字段类型填写默认值。

4 .支持在一个字段中填写多组数据。 例如,“高度消耗”字段和自定义类型“表”表示{ {工具1id、工具1数量}、{工具2id、工具2数量}、… }

脚本文件的目录结构

用于快速运行excel2lua.py脚本的windows bat命令

excel2lua.py脚本代码

导入系统

导入操作系统

导入xlrd

导入re

# #当前脚本路径

curpath=操作系统.路径.域名(操作系统.路径. Abspath (sys.argv [0] ) )

# #文件头说明书格式设置文本

Lua _文件头格式磁盘=“”--[

%s

导出为excel2Lua.py

来自文件: % s

-]((n(n ' ' ) )。

将数据导出到TGT _ Lua _路径

EF EXCEL2LUA (SRC _ EXCEL _路径,TGT _ LUA _路径) :

打印(文件% s-% s % ) src _ excel _路径,文件路径)

# #负载执行数据

excel _ data _ src=xlrd.open _工作簿(src _ excel _路径,编码_复盖=' utf-8 ' )

打印([ excel ]工作表名称(s ) : ),excel _数据_序列名称) )

excel _ sheet=excel _数据_ src.sheet _ by _索引(

打印(%绘制,% d酷) % (excel .名称,excel_sheet.nrows,excel _ ssel,色差,色差)

# # excel数据光盘

excel _数据_磁盘={ }

# #代码名称列表

col_name_list=[]

# #酷值类型列表

col _ val _类型_列表=

# # ctype : 0空白、1字符串、2号、3天、4布尔型、5错误

在# # # 2行的所有列中保存字段名

forcolinrange(0,excel_sheet.ncols ) :

cell=excel_sheet.cell(1(() 1,酷) ) ) ) ) ) ) )至) ) ) ) ) ) ) )。

col _ name _ list.append (str (单元名.值) )

assert cell.ctype==1,' found a invalid col name in col [%d]! ~ ' % (酷) )。

遍历第# # # 3行的所有列以保存数据类型

forcolinrange(0,excel_sheet.ncols ) :

cell=excel_sheet.cell(2 (二,酷) ) ) ) ) ) ) ) ) ) ) )。

col _ val _ type _ list.append (str (单元值) )

assert cell.ctype==1,' Foundainvalidcolvaltypeincol [ % d ]! ~ ' % (酷) )。

删除# # #标题、字段名、字段类型的行,从第4行开始遍历生成行数据

财富范围(3,excel_sheet.nrows ) :

# #保存数据索引的默认第一列是id

CLL _ id=excel _ sheet.cell (行,0 ) () ) ) ) ) ) )。) ) )但) ) ) ) )中的一个示例。) ) ) )

资产单元id.ctype==2,' found a invalid id in row [%d]! ~ ' % (行)

检查# # # id的唯一性

if cell _ id.valueinexcel _数据_磁盘:

打印(“警告”复制数据:“% d”,所有优先级值被忽略! ~ ' % (单元id .值) )

# #原始数据列表

行数据列表=[ ]

# #保存各行的所有数据

forcolinrange(0,excel_sheet.ncols ) :

cell=excel _ sheet.cell (行,酷)。

k=酷名称列表

CLL _ val _ type=酷_ val _ type _ list

# # ignoredthestringthatstartwith ' _ '

ifstr(k ) .开始于“_”) :

继续

# #根据字段类型调整数值为null时,根据字段类型填写默认值

if cell _ val _ type=='字符串' :

if cell.ctype==0:

v='\'\"

else:

v='\' % s\' % (单元格值)

elif单元值类型=='整数' :

if cell.ctype==0:

v=-1

else:

v=int (元素值) )。

elif细胞类型=='浮点' :

if cell.ctype==0:

v=-1

else:

v=浮点(单元格值) )。

elif单元值类型=='表' :

if cell.ctype==0:

v='{} '

else:

v=单元格值

else:

v=单元格值

添加到# # #列表

row_data_list.append([k,v )。

保存# # # id和原始数据

excel _ data _ dict [单元id .值]=行数据列表

# #练习正则检索lua文件名不带后缀作为table的名称使用正则

搜索对象=re .搜索([^\/:*? |\r\n] ().(w

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26525.html

标签: cellpython
分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。