pandas读写excel数据并存入数据库

1,029 阅读2分钟

「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战」。

读取excel表内容

首先引入我们的pandas库import pandas as pd Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。

获取指定工作簿内容

使用read_excel输入excel的路径和sheet表的名字就可以对该表中的某些工作簿进行简单读取了,不指定工作簿的话默认只显示第一张sheet表的内容

df = pd.read_excel("ww.xlsx", sheet_name=["Sheet1", "Sheet2"])

image.png

这是输出的效果 image.png

查看全部工作簿

我们也可以从查看所有工作簿,只需要将 sheet_name设置为None即可

df = pd.read_excel("ww.xlsx", sheet_name=None)

当我们要查看所有工作簿的名称时,可以通过df.keys()进行查看

image.png

将处理后的结果保存到excel

我们需要导入一个库 import xlsxwriter as xw xlsxWriter支持多种excle功能;与excel完美兼容;写大文件,速度快且只占用很小的内存空间。不支持读或者改现有的excel文件

创建我们需要的表头

title = ['班级', '姓名', '年龄', '性别']  

从A1单元格开始写入表头

fileName = 'ok.xls'
workbook = xw.Workbook(fileName)  # 创建工作簿
worksheet1 = workbook.add_worksheet("班级")  # 创建子表
worksheet1.activate()  # 激活表
worksheet1.write_row('A1', title) 

我们也可以改变一下表头或者单元格的样式,像颜色,字体大小等,下面的代码就是将背景色改变成为黄色

format = workbook.add_format()
format.set_pattern(1)
format.set_bg_color('yellow')
worksheet1.write_row('A1:D1', title, format)

image.png

存到表中,我们可以用一个excel_count变量来计数,方便记住此次存储的位置

worksheet1.write_row('A' + str(excel_count), ['软件班', '张三', '20', '女'])

最后不要忘记关闭表哦

workbook.close() 

关于连接数据库存储

我使用的是import mysql.connector 使用pymysql也是一样的操作,之前只在Java项目中连接过数据库,会要配置一些东西,然后发现python连接数据库好简单哦

conn = mysql.connector.connect(
    user='root',
    password='root',
    host='127.0.0.1',
    port=3306,
    database='test'
)
# 创建游标
cursor = conn.cursor()
sql = 'create table ........'
cursor.execute(sql)

# 关闭连接
conn.commit()
cursor.close()

创建,增删改查都是一样的操作 然后将excel中的数据存入即可,注意不管是什么类型的数据,存的时候都用 %s

insertSql = "INSERT INTO tablaName (`class`,`name`,`age`,`sex`) VALUES (%s,%s,%s,%s)"
cursor.execute(insertSql, ['软件班', '张三', '20', '女'])