import xlrd import pymysql #读取xls文件 def Readxls(path,work_name): print("开始读取xls文件") if path.strip()!='': data=xlrd.open_workbook(path) table=data.sheet_by_name(work_name) else: print("输入的路径为空!") return table #读取xls文件的字段 def ReadXlsClomun(table): print("开始读取xls文件中的字段!") list2=[] list1=table.row_values(0) for i in range(0,len(list1)): if list1[i]!="": list2.append(list1[i]) else: continue return list2 #读取xls文件的字段数据 def ReadXlsData(table,row_num): print("开始读取xls文件中的数据!") data=[[] for i in range(row_num)] j=0 line_number=table.nrows for i in range(1,line_number): data[j]=table.row_values(i) j=j+1 return data #执行mysql的语句 def execMysqlStence(create_table,inserte_data,table_name): conn = pymysql.connect(host='192.168.197.137', port=3306, user='root', passwd='123456789', db='safedog') cursor = conn.cursor() crete_affected = cursor.execute(create_table) #组合插入语句 for i in range(0,len(inserte_data)): inserte_data1="" for j in range(0,len(inserte_data[i])): inserte_data2 = '"' + str(inserte_data[i][j]) + '"' if j==0: inserte_data1=inserte_data2+"," elif j==len(inserte_data[i])-1: inserte_data1=inserte_data1+inserte_data2 else: inserte_data1=inserte_data1+inserte_data2+"," inserte_sentence="insert into "+table_name+" values ("+inserte_data1+" )" print(inserte_sentence) insert_affected=cursor.execute(inserte_sentence) conn.commit() #存储数据到mysql的数据库,主函数 def StorageMysql(path,work_name,table_name,row_num): table=Readxls(path,work_name) column_data=ReadXlsClomun(table) print(column_data) table_data=ReadXlsData(table,row_num) print(column_data[1]) #组合建表语句 table="create table "+table_name+" ( " for i in range(0,len(column_data)): if i==0: create_table_sentence=table+column_data[i]+" varchar(200)," elif i==len(column_data)-1: create_table_sentence=create_table_sentence+column_data[i]+" varchar(200) )" else: create_table_sentence=create_table_sentence+column_data[i]+" varchar(200)," print("建表语句为:"+create_table_sentence) execMysqlStence(create_table_sentence,table_data,table_name) if __name__ == "__main__": #读取xls文件的路径 path='D:\ChromeCoreDownloads\panzhi344200811816555189032.xls' #工作表的名称 work_name="Sheet1" #需要建表的名称 table_name="panzhi" #表中有多少行 row_number=25 StorageMysql(path,work_name,table_name,row_number)