用Python将Excel数据导入到SQL Server的例子

yipeiwu_com6年前Python基础

使用环境:Win10 x64 Python:3.6.4 SqlServer:2008R2    

因为近期需要将excel导入到SQL Server,但是使用的是其他语言,闲来无事就尝试着用python进行导入,速度还是挺快的,1w多条数据,也只用了1s多,代码也比较简单,就不多解释了。

用到的库有xlrd(用来处理excel),pymssql(用来连接使用sql server)

import xlrd
import pymssql
import datetime
# 连接本地sql server     地址     用户名  密码   数据库
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]
#获取行数
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行执行一次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
    # 执行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()
# 结束时间
end_time = datetime.datetime.now()
speed = end_time - start_time
# 打印花费时间
print(speed)

以上这篇用Python将Excel数据导入到SQL Server的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python脚本实现集群检测和管理功能

Python脚本实现集群检测和管理功能

场景是这样的:一个生产机房,会有很多的测试机器和生产机器(也就是30台左右吧),由于管理较为混乱导致了哪台机器有人用、哪台机器没人用都不清楚,从而产生了一个想法--利用一台机器来管理所有...

python获取指定网页上所有超链接的方法

本文实例讲述了python获取指定网页上所有超链接的方法。分享给大家供大家参考。具体如下: 这段python代码通过urllib2抓取网页,然后通过简单的正则表达式分析网页上的全部url...

Python实现打印螺旋矩阵功能的方法

Python实现打印螺旋矩阵功能的方法

本文实例讲述了Python实现打印螺旋矩阵功能的方法。分享给大家供大家参考,具体如下: 一、问题描述 输入N, 打印 N*N 螺旋矩阵 比如 N = 3,打印: 1 2 3 8 9...

PyQt5实现下载进度条效果

PyQt5实现下载进度条效果

起因是因为公司要开发一款自动登录某网站的助手工具提供给客户使用,要使用到selenium,所以选择了pyqt5的方式来开发这个C/S架构的客户端 在过程中要用到自动更新的功能,所以自己写...

在树莓派2或树莓派B+上安装Python和OpenCV的教程

在树莓派2或树莓派B+上安装Python和OpenCV的教程

我的Raspberry Pi 2昨天刚邮到,这家伙看上去很小巧可爱。 这小家伙有4核900MHZ的处理器,1G内存。要知道,Raspberry Pi 2 可比我中学电脑实验室里大多数电脑...