本程序主要用于游戏编程等相关项目中,产品人员使用excel设计数据之后直接将相关数据生成sql,可以导入数据库
excel格式及相关的使用方法,请下载数据包http://download.csdn.net/download/wentianyao/9401274
该库使用了luacom组件所以只能在windows使用
-- excel文件解析成sql文件
-- ws
-- 2015.5
------------------------------------------------------------------------
--配置部分
-- 生成sql目标文件的前缀
local FilePrefix = "conf_"
-- 识别excel中表的前缀
local TablePrefix = "conf_"
------------------------------------------------------------------------
-- 加载库文件
package.path=package.path..";..\\?.lua;..\\..\\scripts\\?.lua"
require("luacom")
require("json")
local lfs = require"lfs" -- 加载文件处理库
------------------------------------------------------------------------
local exl2sql={}
-- 设置类型长度 语句配置
-- 数据类型 创建表的时候用(属性创建语句) 数据为空的时候的替换数据
exl2sql.STRINGTYPE ={["UINT11"] = {"int(11) unsigned NOT NULL DEFAULT '0'", 0},
["INT11"] = {"int(11) NOT NULL DEFAULT '0'", 0},
["INT32"] = {"int(32) NOT NULL DEFAULT '0'", 0},
["INT64"] = {"int(64) NOT NULL DEFAULT '0'", 0},
["STRING32"] = {"varchar(32) DEFAULT NULL", "\'\'"},
["STRING64"] = {"varchar(64) DEFAULT NULL", "\'\'"},
["STRING128"] = {"varchar(128) DEFAULT NULL", "\'\'"},
["STRING256"] = {"varchar(256) DEFAULT NULL", "\'\'"},
["STRING512"] = {"varchar(512) DEFAULT NULL", ""},
["STRING1024"] = {"varchar(1024) DEFAULT NULL", "\'\'"},
["STRING2048"] = {"varchar(2048) DEFAULT NULL", "\'\'"},
["DATETIME"] = {"datetime default '0000-00-00 00:00:00'", "\'\'"},
["JSON256"] = {"varchar(256) DEFAULT NULL", "\'\'"},
["JSON1024"] = {"varchar(1024) DEFAULT NULL", "\'\'"},
["JSON2048"] = {"varchar(2048) DEFAULT NULL", "\'\'"}}
-- 字符串的处理“^%s”表示匹配所有非s里面的数据,*表示匹配前一个字符串0次或多次,(.-)表示匹配.或者-,%s*表示0次或多次匹配s
function exl2sql.trim(s)
return s:match "^%s*(.-)%s*$"
end
-- 将字符串s中的符合tMode的子串替换为tReplace
function exl2sql.escape(s)
local tMode="[%z\'\"
local tReplace={
['\0']='\\0',
['\'']='\\\'',
['\"']='\\\"',
['\\']='\\\\',
['\26']='\\z',
['\b