场景:文件夹下有N多excel,每个excel中有1个sheet,sheet页中首行为表格的列头名

实现:将以上所有表格导入到mysql中去,以文件名命名为表名,以列头名命名为字段名

细节:将所有字段处理成字符串,其中半角"处理成了全角” 等

不足:……

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import xlrd
import string
import os
import MySQLdbimport sys
reload(sys)
sys.setdefaultencoding("utf-8")def IsSubString(SubStrList,Str):  ''''' #判断字符串Str是否包含序列SubStrList中的每一个子字符串 #>>>SubStrList=['F','EMS','txt'] #>>>Str='F06925EMS91.txt' #>>>IsSubString(SubStrList,Str)#return True (or False) '''  flag=True  for substr in SubStrList:  if not(substr in Str):  flag=False  return flag  def fn_get_filelist(FindPath,FlagStr=[]):  ''''' #获取目录中指定的文件名 #>>>FlagStr=['F','EMS','txt'] #要求文件名称中包含这些字符 #>>>FileList=GetFileList(FindPath,FlagStr) # '''  import os  FileList=[]  FileNames=os.listdir(FindPath)  if (len(FileNames)>0):  for fn in FileNames:  if (len(FlagStr)>0):  #返回指定类型的文件名  if (IsSubString(FlagStr,fn)):  fullfilename=os.path.join(FindPath,fn)  FileList.append(fullfilename)  else:  #默认直接返回所有文件名  fullfilename=os.path.join(FindPath,fn)  FileList.append(fullfilename)  #对文件名排序  if (len(FileList)>0):  FileList.sort()  for i in range(len(FileList)):print FileList[i]return FileList def fn_create(f):book = xlrd.open_workbook(f)sheet = book.sheet_by_index(0)rows = sheet.nrowscols = sheet.ncolsc = ""for ic in range(cols):arr_v = sheet.col_values(ic)h = fn_arr_maxLen(arr_v)c = c + '`' + sheet.cell(0,ic).value + '` varchar(' + str(h) + ') null  comment \"' +  sheet.cell(0,ic).value + "\"," + "\n\r"t = unicode(f.split("/")[-1].split(".")[0],"utf-8")# f.replace('/tmp/excel/','')t1 = ' create table if not exists `suyang_'t2 = ' id int AUTO_INCREMENT ,primary key (id)) ENGINE=INNODB   DEFAULT CHARSET=utf8;'t = t1 + t + '` (' + c + t2#print treturn tdef fn_insert(f):book = xlrd.open_workbook(f)sheet = book.sheet_by_index(0)rows = sheet.nrowscols = sheet.ncolsc = ''for ic in range(cols):c = c + '`' + sheet.cell(0,ic).value + '`,' t = f.split("/")[-1].split(".")[0]    # f.replace('/tmp/excel/','')print tinsertSql = ' insert into  `suyang_' + t + '` (' + c.rstrip(',') + ' ) values ( 'for ir in range(1,rows):row_values = ''insertSql = ' insert into  `suyang_' + t + '` (' + c.rstrip(',') + ' ) values ( 'for icc in range(cols):if isinstance(sheet.cell(ir,icc).value,int) or isinstance(sheet.cell(ir,icc).value,float):vs = repr(sheet.cell(ir,icc).value).split(".")[0]else:vs = str(sheet.cell(ir,icc).value)insertSql = insertSql + row_values + '"' + str(vs).replace('"','”') + '",'insertSql = insertSql.rstrip(',')+');' #sheet.cell(ir,icc)yield insertSql   #print tdef fn_arr_maxLen(arr):o = 0    for v in arr:if (o < len(str(v).strip())):o = len(str(v).strip())return oif __name__ == '__main__': '''''cs=fn_create('/tmp/excel/注销信息.xlsx')print cs'''mycn = MySQLdb.connect("10.18.141.52","dba","xxxxxxxxxxxxxxxx","ys" )mycn.set_character_set('utf8')mycursor = mycn.cursor()mycursor.execute('SET CHARACTER SET utf8;')mycursor.execute('SET NAMES utf8;')mycursor.execute('SET character_set_connection=utf8;')fs=fn_get_filelist("/tmp/excel",['xlsx'])for ii in range(len(fs)):tcreateSql = fn_create(fs[ii])print tcreateSqltry:mycursor.execute(tcreateSql)for isql in fn_insert(fs[ii]):#print isqlmycursor.execute(isql)mycn.commit()except Exception , e:print emycursor.close()mycn.close()

引自:https://blog.csdn.net/c_enhui/article/details/60141192

python 批量excel导入到mysql中相关推荐

  1. 把EXCEL表格导入到MYSQL中_将EXCEL表格中的数据导入mysql数据库表中(两种方法)...

    今天项目上遇到需要将excel中的数据导入到数据库的classify表中,于是乎拼命上网查阅方法,发现以下两种方法比较可行: 在此之前先说说按照网上的说法我没有试验成功的方法,将excel文件xls保 ...

  2. 使用PhpSpreadsheet将Excel导入到MySQL数据库

    使用PhpSpreadsheet将Excel导入到MySQL数据库 日常开发中,我们经常遇到这样的场景,需要将一个Excel表格数据如客户信息.学生成绩表导入到系统数据库中,然后在系统中进行进一步操作 ...

  3. 将 Microsoft Excel 导入至 MySQL

    将 Microsoft Excel 导入至 MySQL 一.前言 我得到了一份 Microsoft Excel 表格,里面记录了数据信息需要导入至 SQL 数据库. 如果只是导入数据,当然用 MSSQ ...

  4. import excel to mysql_将 Microsoft Excel 导入至 MySQL

    将 Microsoft Excel 导入至 MySQL 一.前言 我得到了一份 Microsoft Excel 表格,里面记录了数据信息需要导入至 SQL 数据库. 如果只是导入数据,当然用 MSSQ ...

  5. Python基础 - Excel导入导出

    Python基础 - Excel导入导出  ​Excel文件是Microsoft Excel用来存储电子表格的文件格式,对Excel的处理方式与带分隔符的文件非常相似.由于Excel可以读写csv文件 ...

  6. mysql access 2017_如何把Access的数据导入到Mysql中

    在建设网站的过程中,经常要处理一些数据的导入及导出.在Mysql数据库中,一般有两种方法来处理数据的导出: 1. 使用select * from table_name into outfile &qu ...

  7. python读取excel送到网页_python怎么读取excel!怎么用python将excel数据写入网页中

    怎么用python将excel数据写入网页中 # 装 xlrd-0.9.2 xlutils-1.7.1 这两个模 from xlwt import Workbook, Formula import x ...

  8. sql2000导出mysql_如何将sql2000的数据库导入到mysql中?

    展开全部 先用SQl2000导出e68a843231313335323631343130323136353331333262373366文本文件,把后缀名改为CSv,再从Mysql中一导入OK 参考: ...

  9. mysql shell可视化_shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中...

    shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...

最新文章

  1. 让seo效果起死回生的妙招
  2. 我的AutoHotkey配置
  3. python爬取新浪新闻首页_学习了《python网络爬虫实战》第一个爬虫,爬取新浪新闻...
  4. 阿里云重磅发布RDS for SQL Server AlwaysOn集群版
  5. 基于Java的数据采集(终结篇)
  6. java实例分析宠物商店_java实例分析:宠物商店.ppt
  7. linux系统在windows看不到,Linux下怎么看不到盘符啊?
  8. 缓存DNS服务器和主从DNS服务器的快速搭建详解——续
  9. rmvb 转 avi 方法
  10. PyQt5 打造GUI爬虫 小说下载器
  11. 访存模式分析实验思路(毕设笔记9)
  12. on duplicate key update不生效_万粉盛典amp;六周年庆|双十一提前嗨!惠玩惠购不做尾款人!...
  13. 视觉感知在数据可视化中的作用
  14. 垃圾邮件识别-朴素贝叶斯算法
  15. 时间序列预测的评估指标补遗
  16. Vue中引入字体并解决字体文件过大问题
  17. 深圳软件测试培训:事件与事件处理
  18. 2023美国大学生数学建模竞赛中文题目发布
  19. java毕设项目进出货管理系统(附源码)
  20. 如何在win7下装win8以及我的win8之旅

热门文章

  1. 东软睿道实训日记—第一天
  2. 计算机二级考试高级应用软件版本,考哪个版本的计算机二级高级办公软件
  3. 大气层Shader(完整代码分享)
  4. A星(A*, A Star)算法详解
  5. 找不到适合自己的工作很迷茫怎么办?
  6. Unreal Python API 从零到入门
  7. Springboot发送Email
  8. java通过扫码枪获取数据
  9. 论《金瓶梅》与项目管理中人际关系协调(转)
  10. 基于linux的openwrt基础教程图解