日韩性视频-久久久蜜桃-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数据导入数据库过程详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本三级韩国三级美三级91 | 免费黄色小网站 | 亚洲国产成人va在线观看天堂 | 在线播放色 | 国产精品久久免费视频 | 欧美乱妇18p | 久久精品视频无码 | 亚洲天堂偷拍 | 成人涩涩视频 | 性欧美巨大| 91视频你懂的 | 欧美在线视频免费观看 | 99综合色| 日本aa在线观看 | 538国产精品一区二区免费视频 | 熟女人妻视频 | 特级精品毛片免费观看 | 免费观看的毛片 | 欧美大片在线看 | 国产福利合集 | 欧美激情喷水 | 欧美国产成人精品一区二区三区 | 狠狠入| 狠狠干狠狠操 | 亚洲av无码一区二区三区人妖 | 女人的黄色片 | 国内外成人在线视频 | 国产一级二级视频 | 91爱| 久久机热 | 成人国产免费视频 | 这里只有精品在线观看 | 强开小受嫩苞第一次免费视频 | 成人午夜免费在线观看 | 成年人免费黄色片 | 五月激情婷婷在线 | 一呦二呦三呦精品网站 | 北条麻妃久久精品 | 午夜国产福利在线 | 久久久天堂国产精品女人 | 精品久久香蕉国产线看观看亚洲 | 激情福利网 | 亚洲国产精品视频一区 | 久久99精品国产91久久来源 | 综合激情婷婷 | 91久久电影 | 日本第一页 | 日韩精品一区二区视频 | 91亚洲国产 | 日本一级视频 | 成人黄网免费观看视频 | 久久av不卡 | 91亚洲精品久久久蜜桃借种 | 网红福利视频 | 亚洲第一大网站 | 欧美成人h | 国产稀缺真实呦乱在线 | 欧美性天天影院 | 另类色综合 | 哪个网站可以看毛片 | 成人免费av网站 | 91久久久久久久久久久久 | 天堂网91 | 欧美日韩99| 欧美壮男野外gaytube | 亚洲视频精选 | aaaaaa毛片| 手机av网址 | 香蕉久久夜色精品国产使用方法 | 99久视频| 伊人久久精品 | 免费黄色网页 | 亚洲综合免费观看高清完整版在线 | 秋霞视频在线观看 | 亚洲人毛茸茸 | 欧美乱妇视频 | 欧美日日夜夜 | 春日野结衣av | www.youjizz国产| 狠狠视频| 丰满少妇在线观看网站 | 国产一区二区三区精品愉拍 | 夜夜操免费视频 | 91视频免费视频 | 一区二区三区在线免费观看 | 日韩有码一区二区三区 | 午夜日韩在线观看 | 777精品久无码人妻蜜桃 | 可以免费看的av毛片 | 成人动漫视频在线观看 | 中文字幕人妻伦伦 | 另类小说一区二区 | 色九九视频 | 2一3sex性hd | www,久久久 | 久久久精品视频在线观看 | 在线看片福利 | 福利视频一区二区 | 超碰在线观看99 |