利用python读取Excel文件的数据到Mysql

运营工作中会遇到很多Excel表格,表格的模板都是一样的,但是只是数据不一样,一个个粘贴复制会很麻烦,我又不会VBA,那么如何快速将数据都汇总到一起,并导入到数据库呢?我尝试了用脚本的方式,解决这个问题。(本人菜鸡,如打扰到您,请见谅)(表中数据为非真实数据,如有雷同,巧合)

1首先先对文件有个大概了解。
D盘中有一个文件夹以及三个xlsx文件。

利用python读取Excel文件的数据到Mysql
以下是单个表有的sheet:(该表有两个sheet:“小上海”,“上海”)
利用python读取Excel文件的数据到Mysql

以下是单个sheet的数据:
利用python读取Excel文件的数据到Mysql
**2:**数据库
数据库中字段的设置

SQL语句创建表table:

create table air_sh(

id int(10) not null auto_increment,
city VARCHAR(20) COMMENT "城市",
AQI int(20) COMMENT "指数",
Pri_population VARCHAR(20) comment "首要污染物",
date Datetime comment "日期",
air_level VARCHAR(30) COMMENT "空气级别",
PRIMARY key(id)

)
利用python读取Excel文件的数据到Mysql

import xlrd
from xlrd import xldate_as_tuple
import pymysql
import datetime
import os #这些都是需要导入的包

path=“D:\hello”
files=os.listdir(path)
for i in files:
if i.endswith(".xlsx"):
path1=path+"\"+i
book=xlrd.open_workbook(path1) #读取D盘“hello”文件夹下的所有excel表文件

database=pymysql.connect(host="localhost",port=3306,user="root",password="root",db="for_excel",charset="utf8")   		#链接数据库(主机,端口,用户,密码等)
cursor=database.cursor()					# 数据库游标															
query='''insert into air_sh(id,city,AQI,pri_population,date,air_level) VALUES (%s,%s,%s,%s,%s,%s)'''		#执行sql插入
for j in range(len(book.sheets())):								#遍历表的sheet
    table=book.sheet_by_index(j)

    for i in range(1,table.nrows):								#遍历每个单元格
        id=int(table.cell(i,0).value)
        city=str(table.cell(i,1).value)
        AQI=int(table.cell(i,2).value)
        pri_population=str(table.cell(i,3).value)
        if  table.cell(i,4).ctype==3:																	**#判断单元格中的时间类型是否为3**
            time=xldate_as_tuple(table.cell(i,4).value,0)									**#将时间转化为元祖格式**
            date=datetime.datetime(*time)														**#将元祖格式转化为datetime**

        air_level=str(table.cell(i,5).value)
        values=(id,city,AQI,pri_population,date,air_level)
        cursor.execute(query,values)
cursor.close()						#关闭游标
database.commit()						#提交操作

database.close()				#关闭数据库

执行后的结果:
利用python读取Excel文件的数据到Mysql