原文鏈接: https://blog.csdn.net/Anwel/article/details/79967261
非常使用的方法:(親測有效果)
import
pymysql
# xlrd 為 python 中讀取 excel 的庫,支持.xls 和 .xlsx 文件
# import xlrd
# openpyxl 庫支持 .xlsx 文件的讀寫
from
openpyxl
.
reader
.
excel
import
load_workbook
from
builtins
import
int
#cur 是數據庫的游標鏈接,path 是 excel 文件的路徑
def
importExcelToMysql
(
cur
,
path
)
:
### xlrd版本
# 讀取excel文件
# workbook = xlrd.open_workbook(path)
# sheets = workbook.sheet_names()
# worksheet = workbook.sheet_by_name(sheets[0])
###
### openpyxl版本
# 讀取excel文件
workbook
=
load_workbook
(
path
)
# 獲得所有工作表的名字
sheets
=
workbook
.
get_sheet_names
(
)
# 獲得第一張表
worksheet
=
workbook
.
get_sheet_by_name
(
sheets
[
0
]
)
###
### xlrd版本
# 將表中數據讀到 sqlstr 數組中
# for i in range(1, worksheet.nrows):
# row = worksheet.row(i)
#
# sqlstr = []
#
# for j in range(0, worksheet.ncols):
# sqlstr.append(worksheet.cell_value(i, j))
###
### openpyxl版本
# 將表中每一行數據讀到 sqlstr 數組中
for
row
in
worksheet
.
rows
:
sqlstr
=
[
]
for
cell
in
row
:
sqlstr
.
append
(
cell
.
value
)
###
valuestr
=
[
str
(
sqlstr
[
0
]
)
,
int
(
sqlstr
[
1
]
)
,
int
(
sqlstr
[
2
]
)
,
int
(
sqlstr
[
3
]
)
]
# 將每行數據存到數據庫中
cur
.
execute
(
"insert into student(姓名, 語文, 數學, 英語) values(%s, %s, %s, %s)"
,
valuestr
)
# 輸出數據庫中內容
def
readTable
(
cursor
)
:
# 選擇全部
cursor
.
execute
(
"select * from student"
)
# 獲得返回值,返回多條記錄,若沒有結果則返回()
results
=
cursor
.
fetchall
(
)
for
i
in
range
(
0
,
results
.
__len__
(
)
)
:
for
j
in
range
(
0
,
4
)
:
print
(
results
[
i
]
[
j
]
,
end
=
'\t'
)
print
(
'\n'
)
if
__name__
==
'__main__'
:
# 和數據庫建立連接
conn
=
pymysql
.
connect
(
'localhost'
,
'root'
,
'123456'
,
charset
=
'utf8'
)
# 創建游標鏈接
cur
=
conn
.
cursor
(
)
# 新建一個database
cur
.
execute
(
"drop database if exists students"
)
cur
.
execute
(
"create database students"
)
# 選擇 students 這個數據庫
cur
.
execute
(
"use students"
)
# sql中的內容為創建一個名為student的表
sql
=
"""CREATE TABLE IF NOT EXISTS `student` (
`姓名` VARCHAR (20),
`語文` INT,
`數學` INT,
`英語` INT
)"""
# 如果存在student這個表則刪除
cur
.
execute
(
"drop table if exists student"
)
# 創建表
cur
.
execute
(
sql
)
# 將 excel 中的數據導入 數據庫中
importExcelToMysql
(
cur
,
"./student.xlsx"
)
readTable
(
cur
)
# 關閉游標鏈接
cur
.
close
(
)
conn
.
commit
(
)
# 關閉數據庫服務器連接,釋放內存
conn
.
close
(
)
根據需求更改main中的表數據即可,毫秒級別的導入啊
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
