目录
- 前言
- 最近接到一个需求,就是将多个Eccel文件(表头相同;每个都非常大,约60多万行,每个都是!!)先合并在一起,再做一些处理,但是Excel表格一个文件根本存不下这么多!更别提打开再做处理,怎么办?当然是借助Mysql啦,利用Python脚本将每一个文件内容插入进去,(其实也可以单个依次导入,但是有多个Excel文件,这样比较繁琐。更重要的是我会Python直接写个脚本)
- 图片展示
- 1、先创建数据库
- 2、目录结构展示
- 3、奉上所有代码和注释
- 4、注意事项
- 4-1
- 数据库端口号我的是33061,一般来说是 3306
- 4-2
- 切记,有多少个(列)表头,就有多少个 %s 占位符
- 希望对大家有帮助
- 致力于办公自动化的小小程序员一枚
- 致力于写出清楚的博客
- 都看到这了,关注+点赞+收藏=不迷路!!
前言
最近接到一个需求,就是将多个Eccel文件(表头相同;每个都非常大,约60多万行,每个都是!!)先合并在一起,再做一些处理,但是Excel表格一个文件根本存不下这么多!更别提打开再做处理,怎么办?当然是借助Mysql啦,利用Python脚本将每一个文件内容插入进去,(其实也可以单个依次导入,但是有多个Excel文件,这样比较繁琐。更重要的是我会Python直接写个脚本)
图片展示
**↓**
1、先创建数据库
2、目录结构展示
文件夹:数据源:用来存放Excel文件
3、奉上所有代码和注释
import os
import time
import pandas as pd
import pymysql
t1 = time.time()
# 连接mysql
connect = pymysql.connect(host='localhost', # 本地数据库
user='root',# 用户名
password=自己的数据库连接密码, # 数据库密码
db=自己的数据库名称, # 数据库名称
port=3306, # 数据库端口号
charset='utf8') #服务器名,账户,密码,数据库名称
cur = connect.cursor()
sql2 = 'truncate table 插入测试表;' # 每次插入前先清空表
cur.execute(sql2)
#
for f in os.listdir("./数据源/"):# 读取
f_n = "./数据源/"+f
df = pd.read_excel(f_n,sheet_name=0,keep_default_na="",dtype=str)
data = df.values.tolist()
for i in data:
# print(i)
sql = 'insert into 插入测试表 values (%s,%s,%s,%s);'# 切记,有多少个(列)表头,就有多少个 %s 占位符
cur.execute(sql,tuple(i))
print(f,"插入成功")
connect.commit()
print("ok")
# 关闭数据库
cur.close() # 关闭游标
connect.close() # 关闭数据库连接
t2 = time.time()
print("数据插入结束,用时%.2f秒"%(t2-t1))
4、注意事项
4-1
数据库端口号我的是33061,一般来说是 3306
4-2
切记,有多少个(列)表头,就有多少个 %s 占位符