日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python接入excel_使用python将excel数据导入数据库过程详解

發布時間:2024/1/23 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python接入excel_使用python将excel数据导入数据库过程详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

因為需要對數據處理,將excel數據導入到數據庫,記錄一下過程。

使用到的庫:xlrd 和 pymysql (如果需要寫到excel可以使用xlwt)

直接丟代碼,使用python3,注釋比較清楚。

import xlrd

import pymysql

# import importlib

# importlib.reload(sys) #出現呢reload錯誤使用

def open_excel():

try:

book = xlrd.open_workbook("XX.xlsx") #文件名,把文件與py文件放在同一目錄下

except:

print("open excel file failed!")

try:

sheet = book.sheet_by_name("sheet名稱") #execl里面的worksheet1

return sheet

except:

print("locate worksheet in excel failed!")

#連接數據庫

try:

db = pymysql.connect(host="127.0.0.1",user="root",

passwd="XXX",

db="XXX",

charset='utf8')

except:

print("could not connect to mysql server")

def search_count():

cursor = db.cursor()

select = "select count(id) from XXXX" #獲取表中xxxxx記錄數

cursor.execute(select) #執行sql語句

line_count = cursor.fetchone()

print(line_count[0])

def insert_deta():

sheet = open_excel()

cursor = db.cursor()

for i in range(1, sheet.nrows): #第一行是標題名,對應表中的字段名所以應該從第二行開始,計算機以0開始計數,所以值是1

name = sheet.cell(i,0).value #取第i行第0列

data = sheet.cell(i,1).value#取第i行第1列,下面依次類推

print(name)

print(data)

value = (name,data)

print(value)

sql = "INSERT INTO XXX(name,data)VALUES(%s,%s)"

cursor.execute(sql,value) #執行sql語句

db.commit()

cursor.close() #關閉連接

insert_deta()

db.close()#關閉數據

print ("ok ")

XXX里自行修改自己的名稱。

說明:對于不規則的單元格,例如合并過的單元格會取到空值。

優化了一下這個程序

import pymysql

import xlrd

# 連接數據庫

try:

db = pymysql.connect(host="127.0.0.1", user="root",

passwd="XXX",

db="XXX",

charset='utf8')

except:

print("could not connect to mysql server")

def open_excel():

try:

book = xlrd.open_workbook("XXX.xlsx") #文件名,把文件與py文件放在同一目錄下

except:

print("open excel file failed!")

try:

sheet = book.sheet_by_name("XXX") #execl里面的worksheet1

return sheet

except:

print("locate worksheet in excel failed!")

def insert_deta():

sheet = open_excel()

cursor = db.cursor()

row_num = sheet.nrows

for i in range(1, row_num): # 第一行是標題名,對應表中的字段名所以應該從第二行開始,計算機以0開始計數,所以值是1

row_data = sheet.row_values(i)

value = (row_data[0],row_data[1],row_data[2],row_data[3])

print(i)

sql = "INSERT INTO demo_yangben(xxx,xxxx,xxxx,xxxx)VALUES(%s,%s,%s,%s)"

cursor.execute(sql, value) # 執行sql語句

db.commit()

cursor.close() # 關閉連接

open_excel()

insert_deta()

再改一下,每一萬條數據寫入到數據庫一次

import pymysql

import xlrd

import sys

'''

連接數據庫

args:db_name(數據庫名稱)

returns:db

'''

def mysql_link(de_name):

try:

db = pymysql.connect(host="127.0.0.1", user="xxx",

passwd="xxx",

db=xxx,

charset='utf8')

return db

except:

print("could not connect to mysql server")

'''

讀取excel函數

args:excel_file(excel文件,目錄在py文件同目錄)

returns:book

'''

def open_excel(excel_file):

try:

book = xlrd.open_workbook(excel_file) # 文件名,把文件與py文件放在同一目錄下

print(sys.getsizeof(book))

return book

except:

print("open excel file failed!")

'''

執行插入操作

args:db_name(數據庫名稱)

table_name(表名稱)

excel_file(excel文件名,把文件與py文件放在同一目錄下)

'''

def store_to(db_name, table_name, excel_file):

db = mysql_link(db_name) # 打開數據庫連接

cursor = db.cursor() # 使用 cursor() 方法創建一個游標對象 cursor

book = open_excel(excel_file) # 打開excel文件

sheets = book.sheet_names() # 獲取所有sheet表名

for sheet in sheets:

sh = book.sheet_by_name(sheet) # 打開每一張表

row_num = sh.nrows

print(row_num)

list = [] # 定義列表用來存放數據

num = 0 # 用來控制每次插入的數量

for i in range(1, row_num): # 第一行是標題名,對應表中的字段名所以應該從第二行開始,計算機以0開始計數,所以值是1

row_data = sh.row_values(i) # 按行獲取excel的值

value = (row_data[0], row_data[1], row_data[2], row_data[3], row_data[4], row_data[5], \

row_data[6], row_data[7], row_data[8], row_data[9], row_data[10], row_data[11], row_data[12],

row_data[13], row_data[14])

list.append(value) # 將數據暫存在列表

num += 1

if( num>= 10000 ): # 每一萬條數據執行一次插入

print(sys.getsizeof(list))

sql = "INSERT INTO " + table_name + " (time, xingbie, afdd, xzb, yzb, cfbj, jjlbmc, \

bjlbmc, bjlxmc, bjlxxlmc, gxqymc,gxdwmc, afql, afxqxx, cjdwmc)\

VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"

cursor.executemany(sql, list) # 執行sql語句

num = 0 # 計數歸零

list.clear() # 清空list

print("worksheets: " + sheet + " has been inserted 10000 datas!")

print("worksheets: " + sheet + " has been inserted " + str(row_num) + " datas!")

db.commit() # 提交

cursor.close() # 關閉連接

db.close()

if __name__ == '__main__':

store_to('demo', 'demo_yangben', 'xxx.xlsx')

思考,如果數據插入有錯誤,怎么解決,

其實有很多數據庫工具可以直接來解決這個問題,注意字符轉換的格式就好。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。

本文標題: 使用python將excel數據導入數據庫過程詳解

本文地址: http://www.cppcns.com/jiaoben/python/270270.html

總結

以上是生活随笔為你收集整理的python接入excel_使用python将excel数据导入数据库过程详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人免费视频播放 | 影音先锋欧美在线 | 欧美性猛交aaaa片黑人 | 大黑人交交护士xxxxhd | 少妇被爽到高潮动态图 | 成人黄色免费网站 | 色婷婷精品 | 久久久久久av无码免费网站下载 | 她也啪在线视频 | 自拍日韩亚洲一区在线 | 99久久精品免费看国产四区 | 天天插天天爱 | 裸体女视频 | 中文字幕久久综合 | 五月婷婷视频 | 麻豆久久久午夜一区二区 | 成人爱爱视频 | 香蕉视频在线免费 | 亚洲一区二区高清 | 另类欧美尿交 | 牛人盗摄一区二区三区视频 | 黄在线视频 | 91免费观看视频 | 久久亚洲精品中文字幕 | 污片在线看 | 亚洲伦理中文字幕 | 亚洲国产成人精品女人久久久 | 91在线看视频 | 国产一区二区三区高清视频 | 欧美精品久久久久久久久 | 在线观看免费小视频 | 日韩免费网址 | 都市激情校园春色亚洲 | 深夜福利视频在线 | 在线观看黄色小视频 | 在线天堂www在线国语对白 | 免费成人蒂法网站 | 欧美在线一二三 | 天天综合网久久 | 欧美激情精品久久久久久免费 | 91免费观看视频 | 大j8福利视频导航 | 三级免费网站 | 少妇免费直播 | 国产系列精品av | 91丨九色丨蝌蚪丨老版 | 亚洲经典一区 | 精品伊人久久 | 亚洲视频欧洲视频 | 91亚色| 天天色成人 | 日韩大片在线免费观看 | 美国成人免费视频 | 欧美一区二区激情视频 | 欧美黑人啪啪 | 亚色在线视频 | 久热精品在线观看视频 | 狠狠艹av | 手机在线毛片 | 在线xxxxx| 国产91综合 | 欧美日韩小视频 | 日韩在线免费视频 | 日本不卡视频在线播放 | 日韩国产片 | 久久久久久久久久网 | 舌奴调教日记 | 美女无遮挡免费网站 | 日韩欧美一区二区三区免费观看 | 午夜在线观看视频网站 | 久久精品视频8 | 国产三级日本三级在线播放 | 97超在线 | 国产乡下妇女做爰视频 | 香蕉国产精品 | 超碰在线影院 | 影音先锋男人天堂 | 国产视频一区二区三区在线观看 | 美女在线观看视频 | 啪啪在线视频 | av福利片| 黄色大片一级片 | 亚洲视频在线播放免费 | 狠狠躁18三区二区一区传媒剧情 | 老司机性视频 | 老版k8经典电影 | 婷婷另类小说 | 91亚洲精品一区二区乱码 | 丝袜 亚洲 另类 国产 制服 | 日韩成人高清视频在线观看 | 欧美三级午夜理伦三级 | 亚洲专区一区 | 久久国产精品无码一区二区 | 亚洲 高清 成人 动漫 | 让男按摩师摸好爽 | 精品乱码一区二区三四区视频 | 中文字幕欧美人妻精品一区蜜臀 | 在线日韩三级 | 黄色大全免费看 |