根据数据表导入xls数据
来源:互联网 发布:淘宝质量好的童装店 编辑:程序博客网 时间:2024/06/06 10:56
公司开发游戏的过程中会有很多配置表,如果数据多了更麻烦的是策划更改了数据
数据的导入就成了一件很麻烦的事,所以就写了一个导入数据的类
现在只要根据 数据库中的 表名和文件名 就可以将xls中的数据导入
xls中的数据得根据 表中字段顺序书写
代码中注意的地方也有提到:
#-*-coding:utf-8-*-
import xlrd
from sgLib.pyDB import DBPool,DB
class AddXlsDataToDB():
'''@summary:将xls表中的数据导入对应数据表中
xls表中的数据必须根据数据表中各个字段顺序进行书写
'''
def __init__(self,table,filename,clear=False,leaveAutoId=True,index=0,rowStart=1):
'''@param bool clear:是否清空原来数据
@param bool leaveAutoId:是否添加表的Auto_increment字段
@param int index: xls的sheet的index
@param int rowStart: 从第几行开始
'''
self.table = table
self.filename = filename
self.clear = clear
self.leaveAutoId = leaveAutoId
self.columns = self.getTableColumns()
self.index = index
self.rowStart = rowStart
def getDb(self):
c = DBPool()
con = c.createCon()
db = DB(con)
return db
def getTableColumns(self):
db = self.getDb()
columns = []
try:
db.cursor.execute('SHOW COLUMNS FROM %s'%self.table)
except Exception,e:
print e
cInfos = db.fetchall()
for cDict in cInfos:
if not self.leaveAutoId and cDict['Extra']==u'auto_increment':#不用添加表的Auto_increment字段
continue
columns.append(cDict['Field'])
return columns
def getWorkbook(self,filename):
try:
wk = xlrd.open_workbook(filename)
except Exception,e:
wk = None
print e
return wk
def startAdd(self):
wk = self.getWorkbook(self.filename)
sheet = wk.sheet_by_index(self.index)
num = sheet.nrows
db = self.getDb()
if self.clear:
db.delete(self.table, '1') #清空原来数据
writeData = {}
for i in xrange(self.rowStart,num):
rowValues = sheet.row_values(i)
for j,field in enumerate(self.columns):
writeData[field] = rowValues[j]
try:
#插入数据
db.insert(self.table,writeData)
except Exception,e:
print '%s failed!' %i
print '%s succeed' %i
def _test():
table = 'tb_name'
filename = u'file/配置表.xls'
a = AddXlsDataToDB(table,filename,clear=True)
a.startAdd()
if __name__ == "__main__":
_test()
- 根据数据表导入xls数据
- xls大数据导入
- java xls文件数据导入
- java xls文件数据导入
- xls数据导入到数据库
- php上传xls文件导入到mysql数据表
- php上传xls文件导入到mysql数据表
- 向数据表批量导入数据
- 导入excel数据到数据表
- SQL从xls或xlsx导入数据
- C#导入XLS数据到数据库
- 用xls导入数据(报错)
- 利用xlrd实现xls文件导入数据
- Java 导入 xls,xlsx 文件数据
- 根据数据表中数据,生成Powerpoint幻灯片
- 根据数据表中数据,生成Powerpoint幻灯片
- excel数据导入mysql数据库的数据表
- excel数据导入mysql数据库的数据表
- QoS学习笔记
- 两军交锋+数学题
- 海量存储系列之序言—之一—之二—之三
- 时间类运算符重载
- spring几种事务配置@以及spring所需jar包
- 根据数据表导入xls数据
- JS关闭chrome标签
- 函数返回值是const或者const引用
- Spring的注入方式都是什么?如何选用?
- 错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 汇编学习历程(键盘中断劫持)
- 热身运动——简单工厂模式
- 可重复组合的应用 By ACReaper
- SNMP++: Transport is not supported