用Python將Excel數(shù)據(jù)導(dǎo)入到SQL Server的例子
使用環(huán)境:Win10 x64 Python:3.6.4 SqlServer:2008R2
因為近期需要將excel導(dǎo)入到SQL Server,但是使用的是其他語言,閑來無事就嘗試著用python進(jìn)行導(dǎo)入,速度還是挺快的,1w多條數(shù)據(jù),也只用了1s多,代碼也比較簡單,就不多解釋了。
用到的庫有xlrd(用來處理excel),pymssql(用來連接使用sql server)
import xlrd
import pymssql
import datetime
# 連接本地sql server 地址 用戶名 密碼 數(shù)據(jù)庫
conn = pymssql.connect("127.0.0.1:1433", "sa", "888888", "Test")
# 建立cursor
cursor = conn.cursor()
# excel文件
fname = "XXXX.xls"
#打開文件
bk = xlrd.open_workbook(fname)
#打開工作表
sh = bk.sheets()[0]
#獲取行數(shù)
start_time=datetime.datetime.now()
sql3=''
# 遍歷所有行
for i in range(1,sh.nrows):
a = []
sql = '('
# 遍歷所有列
for j in range(sh.ncols):
# 將excel每一列的值用,隔開
sql += "'" + str(sh.cell(i, j).value) + "'" + ','
# 組合成sql語句(value1,value2,value3,,)
sql2 = sql.strip(",")
sql3 += sql2.strip()+'),'
# 1000行執(zhí)行一次sql
if i%1000==0:
sql3 = sql3.rstrip(",")
sql1 = "insert into Flow(ID, SaleDate,danwei,danweiname,huowuid,huowuname,chandi,guge,num,danjia,back,pihao,youxiaodate,jibendanwei,Userid,UserdanweiName,kehuquyu,kehuleixing,type) values %s " % sql3
# 執(zhí)行sql語句
cursor.execute(sql1)
sql = ""
sql3=""
sql3 = sql3.rstrip(",")
sql1 = "insert into Flow(ID, SaleDate,danwei,danweiname,huowuid,huowuname,chandi,guge,num,danjia,back,pihao,youxiaodate,jibendanwei,Userid,UserdanweiName,kehuquyu,kehuleixing,type) values %s " % sql3
cursor.execute(sql1)
# commit提交變更
conn.commit()
# 結(jié)束時間
end_time = datetime.datetime.now()
speed = end_time - start_time
# 打印花費時間
print(speed)
以上這篇用Python將Excel數(shù)據(jù)導(dǎo)入到SQL Server的例子就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用pyinstaller打包.exe文件的詳細(xì)教程
PyInstaller是一個跨平臺的Python應(yīng)用打包工具,能夠把 Python 腳本及其所在的 Python 解釋器打包成可執(zhí)行文件,下面這篇文章主要給大家介紹了關(guān)于使用pyinstaller打包.exe文件的相關(guān)資料,需要的朋友可以參考下2022-04-04
Python標(biāo)準(zhǔn)庫urllib2的一些使用細(xì)節(jié)總結(jié)
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫urllib2的一些使用細(xì)節(jié)總結(jié),本文總結(jié)了Proxy 的設(shè)置、Timeout 設(shè)置、Redirect、Cookie等細(xì)節(jié)的使用,需要的朋友可以參考下2015-03-03

